haiku/docs/apps/mail/Public API/MailMessage.html

951 lines
26 KiB
HTML

<HTML>
<HEAD>
<TITLE>MailMessage</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#2222AA" BACKGROUND="../art/bodyBack.gif">
<P><A NAME=BCursor></A> <!--TOP LINKS--></P>
<CENTER><TABLE BORDER=2 BGCOLOR="#FFDD88">
<TR>
<TD>
<P><TABLE BGCOLOR="#550033" CELLPADDING=5>
<TR>
<TD>
<P><A HREF="../index.html"><FONT FACE="HELVETICA" COLOR="#FFFFFF"><B>Mail
Kit 2 Root</B></FONT></A></P>
</TD>
<TD>
<P><A HREF="index.html"><FONT FACE="HELVETICA" COLOR="#FFFFFF"><B>The
Public API</B></FONT></A></P>
</TD>
</TR>
</TABLE>
</P>
</TD>
</TR>
</TABLE>
<HR NOSHADE>
</CENTER>
<P><!--TOP LINKS--></P>
<H1><FONT SIZE="+4">MailMessage</FONT></H1>
<BLOCKQUOTE><FONT FACE="helvetica"><B>Derived
from:</B></FONT>&nbsp;<A HREF="MailComponent.html">MailComponent</A><BR>
<FONT FACE="helvetica"><B>Declared in:</B></FONT>&nbsp;
include/public/MailMessage.h<BR>
<FONT FACE="helvetica"><B>Library:</B></FONT>&nbsp;libmail.so<BR>
<P><BR>
</P>
<P>MailMessage is what you use if you are interested in actually
sending messages. It allows you to add an arbitrary number of
components (naturally making it multipart only if there is more
than one), and provides many convenience functions for adding, modifying
and accessing both headers and data. If you use this kit, you will get to
know MailMessage very well.</P></BLOCKQUOTE>
<P>
<HR NOSHADE>
</P>
<H2><FONT SIZE="+3" COLOR="#430000">C</FONT><FONT COLOR="#430000">onstructor
and
</FONT><FONT SIZE="+3" COLOR="#430000">D</FONT><FONT COLOR="#430000">estructor</FONT></H2>
<P>
<HR>
<A NAME=MailMessage></A><TABLE>
<TR>
<TD>
<P></P>
</TD>
<TD>
<P><FONT SIZE="+2">MailMessage() </FONT></P>
</TD>
</TR>
</TABLE>
</P>
<P>&nbsp;</P>
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
<TR>
<TD>
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
<TR>
<TD>
<P><FONT SIZE="+1"><B><TT>MailMessage(</TT></B></FONT>
BPositionIO *<FONT FACE="HELVETICA" COLOR="#991122"><I>mail_file</I></FONT> = <B>NULL</B>
<FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
</TD>
</TR>
</TABLE>
</P>
</TD>
</TR>
</TABLE>
<P>Creates a new MailMessage. If <FONT FACE="HELVETICA" COLOR="#991122"><I>mail_file</I></FONT> is not <B>NULL</B>,
the MailMessage will be instantiated to the RFC 822 format data contained
in <FONT FACE="HELVETICA" COLOR="#991122"><I>mail_file</I></FONT>.</P>
<P>&nbsp;</P></BLOCKQUOTE>
<P>
<HR>
<A NAME="~MailMessage"></A><TABLE>
<TR>
<TD>
<P></P>
</TD>
<TD>
<P><FONT SIZE="+2">~MailMessage() </FONT></P>
</TD>
</TR>
</TABLE>
</P>
<P>&nbsp;</P>
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
<TR>
<TD>
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
<TR>
<TD>
<P>virtual
<FONT SIZE="+1"><B><TT>~MailMessage()</TT></B></FONT></P>
</TD>
</TR>
</TABLE>
</P>
</TD>
</TR>
</TABLE>
<P>Destroys the message, frees internal buffers, and deletes all added
components.</P></BLOCKQUOTE>
<P>
<HR NOSHADE>
</P>
<H2><FONT SIZE="+3" COLOR="#430000">M</FONT><FONT COLOR="#430000">ember
</FONT><FONT SIZE="+3" COLOR="#430000">F</FONT><FONT COLOR="#430000">unctions</FONT></H2>
<P>
<HR>
<A NAME=To></A>
<A NAME=From></A>
<A NAME=ReplyTo></A>
<A NAME=CC></A>
<A NAME=Subject></A>
<A NAME=Priority></A>
<TABLE>
<TR>
<TD>
<P></P>
</TD>
<TD>
<P><FONT SIZE="+2">To (), From (), ReplyTo (), CC (), Subject (), Priority ()</FONT></P>
</TD>
</TR>
</TABLE>
</P>
<P>&nbsp;</P>
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
<TR>
<TD>
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
<TR>
<TD>
<P>const char *
<FONT SIZE="+1"><B><TT>To()</TT></B></FONT></P>
</TD>
</TR>
<TR>
<TD>
<P>const char *
<FONT SIZE="+1"><B><TT>From()</TT></B></FONT></P>
</TD>
</TR>
<TR>
<TD>
<P>const char *
<FONT SIZE="+1"><B><TT>ReplyTo()</TT></B></FONT></P>
</TD>
</TR>
<TR>
<TD>
<P>const char *
<FONT SIZE="+1"><B><TT>CC()</TT></B></FONT></P>
</TD>
</TR>
<TR>
<TD>
<P>const char *
<FONT SIZE="+1"><B><TT>Subject()</TT></B></FONT></P>
</TD>
</TR>
<TR>
<TD>
<P>int
<FONT SIZE="+1"><B><TT>Priority()</TT></B></FONT></P>
</TD>
</TR>
</TABLE>
</P>
</TD>
</TR>
</TABLE>
<P>Returns the relevant header field from the message. These are simply a convenience. <CODE>Subject()</CODE>,
for instance, is equivalent to, and implemented as, <CODE>HeaderField(&quot;Subject&quot;)</CODE>. There is
no <CODE>BCC()</CODE> function because, for obvious reasons, it is impossible to retrieve BCCs from the message.</P>
</BLOCKQUOTE>
<P>
<HR>
<A NAME=SetTo></A>
<A NAME=SetFrom></A>
<A NAME=SetReplyTo></A>
<A NAME=SetCC></A>
<A NAME=SetSubject></A>
<A NAME=SetPriority></A>
<TABLE>
<TR>
<TD>
<P></P>
</TD>
<TD>
<P><FONT SIZE="+2">SetTo (), SetFrom (), SetReplyTo (), SetCC (), SetBCC (), SetSubject (), SetPriority ()</FONT></P>
</TD>
</TR>
</TABLE>
</P>
<P>&nbsp;</P>
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
<TR>
<TD>
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
<TR>
<TD>
<P>void
<FONT SIZE="+1"><B><TT>SetTo(</TT></B></FONT>
const char *<FONT FACE="HELVETICA" COLOR="#991122"><I>to</I></FONT>
<FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
</TD>
</TR>
<TR>
<TD>
<P>void
<FONT SIZE="+1"><B><TT>SetFrom(</TT></B></FONT>
const char *<FONT FACE="HELVETICA" COLOR="#991122"><I>to</I></FONT>
<FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
</TD>
</TR>
<TR>
<TD>
<P>void
<FONT SIZE="+1"><B><TT>SetReplyTo(</TT></B></FONT>
const char *<FONT FACE="HELVETICA" COLOR="#991122"><I>to</I></FONT>
<FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
</TD>
</TR>
<TR>
<TD>
<P>void
<FONT SIZE="+1"><B><TT>SetCC(</TT></B></FONT>
const char *<FONT FACE="HELVETICA" COLOR="#991122"><I>to</I></FONT>
<FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
</TD>
</TR>
<TR>
<TD>
<P>void
<FONT SIZE="+1"><B><TT>SetBCC(</TT></B></FONT>
const char *<FONT FACE="HELVETICA" COLOR="#991122"><I>to</I></FONT>
<FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
</TD>
</TR>
<TR>
<TD>
<P>void
<FONT SIZE="+1"><B><TT>SetSubject(</TT></B></FONT>
const char *<FONT FACE="HELVETICA" COLOR="#991122"><I>to</I></FONT>
<FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
</TD>
</TR>
<TR>
<TD>
<P>void
<FONT SIZE="+1"><B><TT>SetPriority(</TT></B></FONT>
int <FONT FACE="HELVETICA" COLOR="#991122"><I>to</I></FONT>
<FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
</TD>
</TR>
</TABLE>
</P>
</TD>
</TR>
</TABLE>
<P>Returns the relevant header field of the message. With the exception of
<TT>SetBCC()</TT>, these are simply conveniences which can be easily emulated
with <A HREF="MailComponent.html#SetHeaderField">SetHeaderField()</A>.</P>
</BLOCKQUOTE>
<P>
<HR>
<A NAME=SendViaAccount></A><TABLE>
<TR>
<TD>
<P></P>
</TD>
<TD>
<P><FONT SIZE="+2">SendViaAccount () </FONT></P>
</TD>
</TR>
</TABLE>
</P>
<P>&nbsp;</P>
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
<TR>
<TD>
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
<TR>
<TD>
<P>void
<FONT SIZE="+1"><B><TT>SendViaAccount(</TT></B></FONT>
const char *<FONT FACE="HELVETICA" COLOR="#991122"><I>account_name</I></FONT>
<FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
</TD>
</TR>
<TR>
<TD>
<P>void
<FONT SIZE="+1"><B><TT>SendViaAccount(</TT></B></FONT>
int32 <FONT FACE="HELVETICA" COLOR="#991122"><I>chain_id</I></FONT>
<FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
</TD>
</TR>
</TABLE>
</P>
</TD>
</TR>
</TABLE>
<P>Sets the message up so that it is sent via the account specified by either <FONT FACE="HELVETICA" COLOR="#991122"><I>account_name</I></FONT>
or <FONT FACE="HELVETICA" COLOR="#991122"><I>chain_id</I></FONT>, which of course must exist as an outbound chain (see
<A HREF="MailChain.html#ChainDirection">MailChain::ChainDirection()</A> for details). Automatically calls <A HREF="#SetFrom">SetFrom()</A> with
the return address indicated in the specified chain using the format "Real Name" &lt;e-mail&gt;.</P>
</BLOCKQUOTE>
<P>
<HR>
<A NAME=AddComponent></A><TABLE>
<TR>
<TD>
<P></P>
</TD>
<TD>
<P><FONT SIZE="+2">AddComponent() </FONT></P>
</TD>
</TR>
</TABLE>
</P>
<P>&nbsp;</P>
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
<TR>
<TD>
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
<TR>
<TD>
<P>
void <FONT SIZE="+1"><B><TT>AddComponent(</TT></B></FONT>
<A HREF="MailComponent.html">MailComponent</A> *<FONT FACE="HELVETICA" COLOR="#991122"><I>component</I></FONT>
<FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
</TD>
</TR>
</TABLE>
</P>
</TD>
</TR>
</TABLE>
<P>Adds <FONT FACE="HELVETICA" COLOR="#991122"><I>component</I></FONT> to this MailMessage. Note that the MailMessage
assumes ownership of <FONT FACE="HELVETICA" COLOR="#991122"><I>component</I></FONT>. Thus, you <B>may not</B> delete <FONT FACE="HELVETICA" COLOR="#991122"><I>component</I></FONT>.
If you continue to modify to it after calling <TT>AddComponent()</TT>, your changes will be reflected when you
call <A HREF="#Render">Render()</A>. <TT>AddComponent()</TT> automatically makes the message multipart if there is
more than one component.</P></BLOCKQUOTE>
<P>
<HR>
<A NAME=GetComponent></A><TABLE>
<TR>
<TD>
<P></P>
</TD>
<TD>
<P><FONT SIZE="+2">GetComponent() </FONT></P>
</TD>
</TR>
</TABLE>
</P>
<P>&nbsp;</P>
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
<TR>
<TD>
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
<TR>
<TD>
<P>
<A HREF="MailComponent.html">MailComponent</A> * <FONT SIZE="+1"><B><TT>GetComponent(</TT></B></FONT>
int32 <FONT FACE="HELVETICA" COLOR="#991122"><I>index</I></FONT>
<FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
</TD>
</TR>
</TABLE>
</P>
</TD>
</TR>
</TABLE>
<P>Returns the component at <FONT FACE="HELVETICA" COLOR="#991122"><I>index</I></FONT>.
Instantiate()s it if it has not yet been instantiated. Otherwise, returns already instantiated
component. Use RTTI or <A HREF="MailComponent.html">MailComponent</A> hooks to do useful things with the returned
component.</P>
<P>&nbsp;</P>
<P></BLOCKQUOTE>
<HR>
<A NAME=CountComponents></A><TABLE>
<TR>
<TD>
<P></P>
</TD>
<TD>
<P><FONT SIZE="+2">CountComponents() </FONT></P>
</TD>
</TR>
</TABLE>
</P>
<P>&nbsp;</P>
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
<TR>
<TD>
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
<TR>
<TD>
<P>
int32 <FONT SIZE="+1"><B><TT>CountComponents()</TT></B></FONT> const</P>
</TD>
</TR>
</TABLE>
</P>
</TD>
</TR>
</TABLE>
<P>Returns the total number of components in this MailMessage.</P>
<P>&nbsp;</P></BLOCKQUOTE>
<P>
<HR>
<A NAME=Attach></A><TABLE>
<TR>
<TD>
<P></P>
</TD>
<TD>
<P><FONT SIZE="+2">Attach () </FONT></P>
</TD>
</TR>
</TABLE>
</P>
<P>&nbsp;</P>
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
<TR>
<TD>
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
<TR>
<TD>
<P>void
<FONT SIZE="+1"><B><TT>Attach(</TT></B></FONT>
entry_ref *<FONT FACE="HELVETICA" COLOR="#991122"><I>ref</I></FONT>,
bool <FONT FACE="HELVETICA" COLOR="#991122"><I>include_attributes</I></FONT> = <B>true</B>
<FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
</TD>
</TR>
</TABLE>
</P>
</TD>
</TR>
</TABLE>
<P>Attaches <FONT FACE="HELVETICA" COLOR="#991122"><I>ref</I></FONT> to this message. If <FONT FACE="HELVETICA" COLOR="#991122"><I>include_attributes</I></FONT>
is <B>true</B>, uses an <A HREF="AttributedMailAttachment.html">AttributedMailAttachment</A>
instead of a <A HREF="SimpleMailAttachment.html">SimpleMailAttachment</A>. Be aware that is
attached in the state it is in when the message is rendered, not when <TT>Attach()</TT> is
called.</P></BLOCKQUOTE>
<P>
<HR>
<A NAME=IsComponentAttachment></A><TABLE>
<TR>
<TD>
<P></P>
</TD>
<TD>
<P><FONT SIZE="+2">IsComponentAttachment () </FONT></P>
</TD>
</TR>
</TABLE>
</P>
<P>&nbsp;</P>
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
<TR>
<TD>
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
<TR>
<TD>
<P>bool
<FONT SIZE="+1"><B><TT>IsComponentAttachment(</TT></B></FONT>
int32 <FONT FACE="HELVETICA" COLOR="#991122"><I>index</I></FONT><FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
</TD>
</TR>
</TABLE>
</P>
</TD>
</TR>
</TABLE>
<P>If the component at <FONT FACE="HELVETICA" COLOR="#991122"><I>index</I></FONT> is an attachment of any
kind, returns <B>true</B>, otherwise returns <B>false</B>.</P></BLOCKQUOTE>
<P>
<HR>
<A NAME=SetBodyTextTo></A><TABLE>
<TR>
<TD>
<P></P>
</TD>
<TD>
<P><FONT SIZE="+2">SetBodyTextTo () </FONT></P>
</TD>
</TR>
</TABLE>
</P>
<P>&nbsp;</P>
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
<TR>
<TD>
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
<TR>
<TD>
<P>void
<FONT SIZE="+1"><B><TT>SetBodyTextTo(</TT></B></FONT>const
char *<FONT FACE="HELVETICA" COLOR="#991122"><I>text</I></FONT><FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
</TD>
</TR>
</TABLE>
</P>
</TD>
</TR>
</TABLE>
<P>Sets the body of this message to the UTF8 string
contained in <FONT FACE="HELVETICA" COLOR="#991122"><I>text</I></FONT>.
If no body has been specified through <A HREF="#SetBody">SetBody()</A>,
<TT>SetBodyTextTo()</TT> creates one.</P></BLOCKQUOTE>
<P>
<HR>
<A NAME=BodyText></A><TABLE>
<TR>
<TD>
<P></P>
</TD>
<TD>
<P><FONT SIZE="+2">BodyText () </FONT></P>
</TD>
</TR>
</TABLE>
</P>
<P>&nbsp;</P>
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
<TR>
<TD>
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
<TR>
<TD>
<P>const char *
<FONT SIZE="+1"><B><TT>BodyText()</TT></B></FONT></P>
</TD>
</TR>
</TABLE>
</P>
</TD>
</TR>
</TABLE>
<P>Returns the contents of <A HREF="#Body">Body()</A> as a UTF8
string. Returns <B>NULL</B> if no body exists.</P></BLOCKQUOTE>
<P>
<HR>
<A NAME=SetBody></A><TABLE>
<TR>
<TD>
<P></P>
</TD>
<TD>
<P><FONT SIZE="+2">SetBody () </FONT></P>
</TD>
</TR>
</TABLE>
</P>
<P>&nbsp;</P>
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
<TR>
<TD>
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
<TR>
<TD>
<P>status_t
<FONT SIZE="+1"><B><TT>SetBody(</TT></B></FONT>
<A HREF="PlainTextBodyComponent.html">PlainTextBodyComponent</A> *<FONT FACE="HELVETICA" COLOR="#991122"><I>body</I></FONT><FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
</TD>
</TR>
</TABLE>
</P>
</TD>
</TR>
</TABLE>
<P>Sets the body of this message to <FONT FACE="HELVETICA" COLOR="#991122"><I>body</I></FONT>.
If a body has already been specified, <TT>SetBody()</TT> returns <B>B_ERROR</B>, otherwise
returns <B>B_OK</B>.</P></BLOCKQUOTE>
<P>
<HR>
<A NAME=Body></A><TABLE>
<TR>
<TD>
<P></P>
</TD>
<TD>
<P><FONT SIZE="+2">Body () </FONT></P>
</TD>
</TR>
</TABLE>
</P>
<P>&nbsp;</P>
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
<TR>
<TD>
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
<TR>
<TD>
<P><A HREF="PlainTextBodyComponent.html">PlainTextBodyComponent</A> *
<FONT SIZE="+1"><B><TT>Body()</TT></B></FONT></P>
</TD>
</TR>
</TABLE>
</P>
</TD>
</TR>
</TABLE>
<P>Returns the body as a <A HREF="PlainTextBodyComponent.html">PlainTextBodyComponent</A> pointer.
Returns <B>NULL</B> if no body exists. This object belongs to the MailMessage, do <I>not</I> delete it.</P></BLOCKQUOTE>
<P>
<HR>
<A NAME=Instantiate></A><TABLE>
<TR>
<TD>
<P></P>
</TD>
<TD>
<P><FONT SIZE="+2">Instantiate () </FONT></P>
</TD>
</TR>
</TABLE>
</P>
<P>&nbsp;</P>
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
<TR>
<TD>
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
<TR>
<TD>
<P>virtual status_t
<FONT SIZE="+1"><B><TT>Instantiate(</TT></B></FONT>BPositionIO
*<FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT>,
size_t <FONT FACE="HELVETICA" COLOR="#991122"><I>length</I></FONT><FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
</TD>
</TR>
</TABLE>
</P>
</TD>
</TR>
</TABLE>
<P>Initializes this message to the RFC 822 format data in
<FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT>,
starting at <FONT FACE="HELVETICA" COLOR="#991122"><I>data
</I></FONT>-&gt;Position(), for up to <FONT FACE="HELVETICA" COLOR="#991122"><I>length
</I></FONT>bytes.</P>
<P><B>Return Value:</B></P>
<BLOCKQUOTE>- <B>B_OK</B> if everything succeeds.
<P>- <B>B_BAD_TYPE</B> if <FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT><FONT FACE="HELVETICA">
</FONT>does not seem to be an e-mail message.</P></BLOCKQUOTE></BLOCKQUOTE>
<P>
<HR>
<A NAME=Render></A><TABLE>
<TR>
<TD>
<P></P>
</TD>
<TD>
<P><FONT SIZE="+2">Render () </FONT></P>
</TD>
</TR>
</TABLE>
</P>
<P>&nbsp;</P>
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
<TR>
<TD>
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
<TR>
<TD>
<P>virtual status_t
<FONT SIZE="+1"><B><TT>Render(</TT></B></FONT>BPositionIO
*<FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT><FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
</TD>
</TR>
</TABLE>
</P>
</TD>
</TR>
</TABLE>
<P>Renders the message into RFC 822 format and places the result
in <FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT>,
starting at <FONT FACE="HELVETICA" COLOR="#991122"><I>data
</I></FONT>-&gt;Position(). If <FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT>
is a BFile, writes appropriate attributes and sets its MIME type to text/x-email.</P>
<P><B>Return Value:</B></P>
<BLOCKQUOTE>- <B>B_OK</B> if everything succeeds.</BLOCKQUOTE>
<P></TABLE></P></BLOCKQUOTE>
<P>
<HR>
<A NAME=RenderTo></A><TABLE>
<TR>
<TD>
<P></P>
</TD>
<TD>
<P><FONT SIZE="+2">RenderTo () </FONT></P>
</TD>
</TR>
</TABLE>
</P>
<P>&nbsp;</P>
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
<TR>
<TD>
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
<TR>
<TD>
<P>status_t
<FONT SIZE="+1"><B><TT>RenderTo(</TT></B></FONT>BDirectory
*<FONT FACE="HELVETICA" COLOR="#991122"><I>dir</I></FONT><FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
</TD>
</TR>
</TABLE>
</P>
</TD>
</TR>
</TABLE>
<P>Creates a new file in <FONT FACE="HELVETICA" COLOR="#991122"><I>dir</I></FONT>, named according to
the following format: &quot;Subject&quot; &lt;To&gt; <I>unique indentifier</I>. Calls
<A HREF="#Render">Render()</A> on the resulting file and writes appropriate attributes.</P>
<P><B>Return Value:</B></P>
<BLOCKQUOTE>- <B>B_OK</B> if everything succeeds.</BLOCKQUOTE>
<P></TABLE></P></BLOCKQUOTE>
<P>
<HR>
<A NAME=Send></A><TABLE>
<TR>
<TD>
<P></P>
</TD>
<TD>
<P><FONT SIZE="+2">Send () </FONT></P>
</TD>
</TR>
</TABLE>
</P>
<P>&nbsp;</P>
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
<TR>
<TD>
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
<TR>
<TD>
<P>status_t
<FONT SIZE="+1"><B><TT>Send(</TT></B></FONT>bool
<FONT FACE="HELVETICA" COLOR="#991122"><I>send_now</I></FONT><FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
</TD>
</TR>
</TABLE>
</P>
</TD>
</TR>
</TABLE>
<P>Calls <A HREF="#RenderTo">RenderTo()</A> with the directory specified by the <A HREF="MailChain.html">MailChain</A>
passed to <A HREF="#SendViaAccount">SendViaAccount()</A>. If that is invalid, it uses the default outbound chain
given by <A HREF="MailSettings.html#DefaultOutboundChainID">MailSettings::DefaultOutboundChainID()</A>. After
rendering the message, if <FONT FACE="HELVETICA" COLOR="#991122"><I>send_now</I></FONT> is <B>true</B>,
calls <A HREF="MailDaemon.html#SendQueuedMail">MailDaemon::SendQueuedMail()</A>.</P>
<P><B>Return Value:</B></P>
<BLOCKQUOTE>- <B>B_OK</B> if everything succeeds.<P>
- <B>B_MAIL_NO_DAEMON</B> if the mail daemon is not running.<P>
- something else if there is another error.</BLOCKQUOTE>
<P></TABLE></P></BLOCKQUOTE>
<P><!--TOP LINKS-->
<HR NOSHADE>
</P>
<CENTER><TABLE BORDER=2 BGCOLOR="#FFDD88">
<TR>
<TD>
<P><TABLE BGCOLOR="#550033" CELLPADDING=5>
<TR>
<TD>
<P><A HREF="../index.html"><FONT FACE="HELVETICA" COLOR="#FFFFFF"><B>Mail
Kit 2 Root</B></FONT></A></P>
</TD>
<TD>
<P><A HREF="index.html"><FONT FACE="HELVETICA" COLOR="#FFFFFF"><B>The
Public API</B></FONT></A></P>
</TD>
</TR>
</TABLE>
</P>
</TD>
</TR>
</TABLE>
</CENTER>
<P><!--TOP LINKS--> <!-- Footer for Release 5 HTML Be Book --><BR>
</P>
<CENTER><FONT SIZE="+3" COLOR="#555555"><I>Mail Daemon 2 API
Documentation</I></FONT>
<P><FONT SIZE="+1" COLOR="#555555"><I>&copy;2001 Dr. Zoidberg
Enterprises</I></FONT></P></CENTER>
</BODY>
</HTML>