1999-02-12 19:26:09 +00:00
|
|
|
\section{\module{MimeWriter} ---
|
|
|
|
Generic MIME file writer}
|
|
|
|
|
|
|
|
\declaremodule{standard}{MimeWriter}
|
|
|
|
|
|
|
|
\modulesynopsis{Generic MIME file writer.}
|
|
|
|
\sectionauthor{Christopher G. Petrilli}{petrilli@amber.org}
|
|
|
|
|
|
|
|
This module defines the class \class{MimeWriter}. The
|
|
|
|
\class{MimeWriter} class implements a basic formatter for creating
|
|
|
|
MIME multi-part files. It doesn't seek around the output file nor
|
|
|
|
does it use large amounts of buffer space. You must write the parts
|
|
|
|
out in the order that they should occur in the final
|
|
|
|
file. \class{MimeWriter} does buffer the headers you add, allowing you
|
|
|
|
to rearrange their order.
|
|
|
|
|
|
|
|
\begin{classdesc}{MimeWriter}{fp}
|
|
|
|
Return a new instance of the \class{MimeWriter} class. The only
|
|
|
|
argument passed, \var{fp}, is a file object to be used for
|
|
|
|
writing. Note that a \class{StringIO} object could also be used.
|
|
|
|
\end{classdesc}
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{MimeWriter Objects \label{MimeWriter-objects}}
|
|
|
|
|
|
|
|
|
|
|
|
\class{MimeWriter} instances have the following methods:
|
|
|
|
|
|
|
|
\begin{methoddesc}{addheader}{key, value\optional{, prefix}}
|
|
|
|
Add a header line to the MIME message. The \var{key} is the name of
|
|
|
|
the header, where the \var{value} obviously provides the value of the
|
|
|
|
header. The optional argument \var{prefix} determines where the header
|
|
|
|
is inserted; \samp{0} means append at the end, \samp{1} is insert at
|
|
|
|
the start. The default is to append.
|
|
|
|
\end{methoddesc}
|
|
|
|
|
|
|
|
\begin{methoddesc}{flushheaders}{}
|
|
|
|
Causes all headers accumulated so far to be written out (and
|
|
|
|
forgotten). This is useful if you don't need a body part at all,
|
|
|
|
e.g.\ for a subpart of type \mimetype{message/rfc822} that's (mis)used
|
|
|
|
to store some header-like information.
|
|
|
|
\end{methoddesc}
|
|
|
|
|
|
|
|
\begin{methoddesc}{startbody}{ctype\optional{, plist\optional{, prefix}}}
|
|
|
|
Returns a file-like object which can be used to write to the
|
|
|
|
body of the message. The content-type is set to the provided
|
|
|
|
\var{ctype}, and the optional parameter \var{plist} provides
|
|
|
|
additional parameters for the content-type declaration. \var{prefix}
|
|
|
|
functions as in \method{addheader()} except that the default is to
|
|
|
|
insert at the start.
|
|
|
|
\end{methoddesc}
|
|
|
|
|
|
|
|
\begin{methoddesc}{startmultipartbody}{subtype\optional{,
|
|
|
|
boundary\optional{, plist\optional{, prefix}}}}
|
|
|
|
Returns a file-like object which can be used to write to the
|
|
|
|
body of the message. Additionally, this method initializes the
|
2000-04-03 20:13:55 +00:00
|
|
|
multi-part code, where \var{subtype} provides the multipart subtype,
|
1999-02-12 19:26:09 +00:00
|
|
|
\var{boundary} may provide a user-defined boundary specification, and
|
|
|
|
\var{plist} provides optional parameters for the subtype.
|
|
|
|
\var{prefix} functions as in \method{startbody()}. Subparts should be
|
|
|
|
created using \method{nextpart()}.
|
|
|
|
\end{methoddesc}
|
|
|
|
|
|
|
|
\begin{methoddesc}{nextpart}{}
|
|
|
|
Returns a new instance of \class{MimeWriter} which represents an
|
|
|
|
individual part in a multipart message. This may be used to write the
|
|
|
|
part as well as used for creating recursively complex multipart
|
|
|
|
messages. The message must first be initialized with
|
|
|
|
\method{startmultipartbody()} before using \method{nextpart()}.
|
|
|
|
\end{methoddesc}
|
|
|
|
|
|
|
|
\begin{methoddesc}{lastpart}{}
|
|
|
|
This is used to designate the last part of a multipart message, and
|
|
|
|
should \emph{always} be used when writing multipart messages.
|
|
|
|
\end{methoddesc}
|