| 1 | \section{\module{mimetools} ---
|
|---|
| 2 | Tools for parsing MIME messages}
|
|---|
| 3 |
|
|---|
| 4 | \declaremodule{standard}{mimetools}
|
|---|
| 5 | \modulesynopsis{Tools for parsing MIME-style message bodies.}
|
|---|
| 6 |
|
|---|
| 7 | \deprecated{2.3}{The \refmodule{email} package should be used in
|
|---|
| 8 | preference to the \module{mimetools} module. This
|
|---|
| 9 | module is present only to maintain backward
|
|---|
| 10 | compatibility.}
|
|---|
| 11 |
|
|---|
| 12 | This module defines a subclass of the
|
|---|
| 13 | \refmodule{rfc822}\refstmodindex{rfc822} module's
|
|---|
| 14 | \class{Message} class and a number of utility functions that are
|
|---|
| 15 | useful for the manipulation for MIME multipart or encoded message.
|
|---|
| 16 |
|
|---|
| 17 | It defines the following items:
|
|---|
| 18 |
|
|---|
| 19 | \begin{classdesc}{Message}{fp\optional{, seekable}}
|
|---|
| 20 | Return a new instance of the \class{Message} class. This is a
|
|---|
| 21 | subclass of the \class{rfc822.Message} class, with some additional
|
|---|
| 22 | methods (see below). The \var{seekable} argument has the same meaning
|
|---|
| 23 | as for \class{rfc822.Message}.
|
|---|
| 24 | \end{classdesc}
|
|---|
| 25 |
|
|---|
| 26 | \begin{funcdesc}{choose_boundary}{}
|
|---|
| 27 | Return a unique string that has a high likelihood of being usable as a
|
|---|
| 28 | part boundary. The string has the form
|
|---|
| 29 | \code{'\var{hostipaddr}.\var{uid}.\var{pid}.\var{timestamp}.\var{random}'}.
|
|---|
| 30 | \end{funcdesc}
|
|---|
| 31 |
|
|---|
| 32 | \begin{funcdesc}{decode}{input, output, encoding}
|
|---|
| 33 | Read data encoded using the allowed MIME \var{encoding} from open file
|
|---|
| 34 | object \var{input} and write the decoded data to open file object
|
|---|
| 35 | \var{output}. Valid values for \var{encoding} include
|
|---|
| 36 | \code{'base64'}, \code{'quoted-printable'}, \code{'uuencode'},
|
|---|
| 37 | \code{'x-uuencode'}, \code{'uue'}, \code{'x-uue'}, \code{'7bit'}, and
|
|---|
| 38 | \code{'8bit'}. Decoding messages encoded in \code{'7bit'} or \code{'8bit'}
|
|---|
| 39 | has no effect. The input is simply copied to the output.
|
|---|
| 40 | \end{funcdesc}
|
|---|
| 41 |
|
|---|
| 42 | \begin{funcdesc}{encode}{input, output, encoding}
|
|---|
| 43 | Read data from open file object \var{input} and write it encoded using
|
|---|
| 44 | the allowed MIME \var{encoding} to open file object \var{output}.
|
|---|
| 45 | Valid values for \var{encoding} are the same as for \method{decode()}.
|
|---|
| 46 | \end{funcdesc}
|
|---|
| 47 |
|
|---|
| 48 | \begin{funcdesc}{copyliteral}{input, output}
|
|---|
| 49 | Read lines from open file \var{input} until \EOF{} and write them to
|
|---|
| 50 | open file \var{output}.
|
|---|
| 51 | \end{funcdesc}
|
|---|
| 52 |
|
|---|
| 53 | \begin{funcdesc}{copybinary}{input, output}
|
|---|
| 54 | Read blocks until \EOF{} from open file \var{input} and write them to
|
|---|
| 55 | open file \var{output}. The block size is currently fixed at 8192.
|
|---|
| 56 | \end{funcdesc}
|
|---|
| 57 |
|
|---|
| 58 |
|
|---|
| 59 | \begin{seealso}
|
|---|
| 60 | \seemodule{email}{Comprehensive email handling package; supersedes
|
|---|
| 61 | the \module{mimetools} module.}
|
|---|
| 62 | \seemodule{rfc822}{Provides the base class for
|
|---|
| 63 | \class{mimetools.Message}.}
|
|---|
| 64 | \seemodule{multifile}{Support for reading files which contain
|
|---|
| 65 | distinct parts, such as MIME data.}
|
|---|
| 66 | \seeurl{http://www.cs.uu.nl/wais/html/na-dir/mail/mime-faq/.html}{
|
|---|
| 67 | The MIME Frequently Asked Questions document. For an
|
|---|
| 68 | overview of MIME, see the answer to question 1.1 in Part 1
|
|---|
| 69 | of this document.}
|
|---|
| 70 | \end{seealso}
|
|---|
| 71 |
|
|---|
| 72 |
|
|---|
| 73 | \subsection{Additional Methods of Message Objects
|
|---|
| 74 | \label{mimetools-message-objects}}
|
|---|
| 75 |
|
|---|
| 76 | The \class{Message} class defines the following methods in
|
|---|
| 77 | addition to the \class{rfc822.Message} methods:
|
|---|
| 78 |
|
|---|
| 79 | \begin{methoddesc}{getplist}{}
|
|---|
| 80 | Return the parameter list of the \mailheader{Content-Type} header.
|
|---|
| 81 | This is a list of strings. For parameters of the form
|
|---|
| 82 | \samp{\var{key}=\var{value}}, \var{key} is converted to lower case but
|
|---|
| 83 | \var{value} is not. For example, if the message contains the header
|
|---|
| 84 | \samp{Content-type: text/html; spam=1; Spam=2; Spam} then
|
|---|
| 85 | \method{getplist()} will return the Python list \code{['spam=1',
|
|---|
| 86 | 'spam=2', 'Spam']}.
|
|---|
| 87 | \end{methoddesc}
|
|---|
| 88 |
|
|---|
| 89 | \begin{methoddesc}{getparam}{name}
|
|---|
| 90 | Return the \var{value} of the first parameter (as returned by
|
|---|
| 91 | \method{getplist()}) of the form \samp{\var{name}=\var{value}} for the
|
|---|
| 92 | given \var{name}. If \var{value} is surrounded by quotes of the form
|
|---|
| 93 | `\code{<}...\code{>}' or `\code{"}...\code{"}', these are removed.
|
|---|
| 94 | \end{methoddesc}
|
|---|
| 95 |
|
|---|
| 96 | \begin{methoddesc}{getencoding}{}
|
|---|
| 97 | Return the encoding specified in the
|
|---|
| 98 | \mailheader{Content-Transfer-Encoding} message header. If no such
|
|---|
| 99 | header exists, return \code{'7bit'}. The encoding is converted to
|
|---|
| 100 | lower case.
|
|---|
| 101 | \end{methoddesc}
|
|---|
| 102 |
|
|---|
| 103 | \begin{methoddesc}{gettype}{}
|
|---|
| 104 | Return the message type (of the form \samp{\var{type}/\var{subtype}})
|
|---|
| 105 | as specified in the \mailheader{Content-Type} header. If no such
|
|---|
| 106 | header exists, return \code{'text/plain'}. The type is converted to
|
|---|
| 107 | lower case.
|
|---|
| 108 | \end{methoddesc}
|
|---|
| 109 |
|
|---|
| 110 | \begin{methoddesc}{getmaintype}{}
|
|---|
| 111 | Return the main type as specified in the \mailheader{Content-Type}
|
|---|
| 112 | header. If no such header exists, return \code{'text'}. The main
|
|---|
| 113 | type is converted to lower case.
|
|---|
| 114 | \end{methoddesc}
|
|---|
| 115 |
|
|---|
| 116 | \begin{methoddesc}{getsubtype}{}
|
|---|
| 117 | Return the subtype as specified in the \mailheader{Content-Type}
|
|---|
| 118 | header. If no such header exists, return \code{'plain'}. The subtype
|
|---|
| 119 | is converted to lower case.
|
|---|
| 120 | \end{methoddesc}
|
|---|