| \section{\module{MimeWriter} --- | 
 |          Generic MIME file writer} | 
 |  | 
 | \declaremodule{standard}{MimeWriter} | 
 |  | 
 | \modulesynopsis{Generic MIME file writer.} | 
 | \sectionauthor{Christopher G. Petrilli}{petrilli@amber.org} | 
 |  | 
 | \deprecated{2.3}{The \refmodule{email} package should be used in | 
 |                  preference to the \module{MimeWriter} module.  This | 
 |                  module is present only to maintain backward | 
 |                  compatibility.} | 
 |  | 
 | 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 | 
 | multi-part code, where \var{subtype} provides the multipart subtype, | 
 | \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} |