libmimetools.tex 4.76 KB
Newer Older
Fred Drake's avatar
Fred Drake committed
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 8 9 10
\deprecated{2.3}{The \refmodule{email} package should be used in
                 preference to the \module{mimetools} module.  This
                 module is present only to maintain backward
                 compatibility.}
11

12 13 14 15
This module defines a subclass of the
\refmodule{rfc822}\refstmodindex{rfc822} module's
\class{Message} class and a number of utility functions that are
useful for the manipulation for MIME multipart or encoded message.
Guido van Rossum's avatar
Guido van Rossum committed
16 17 18

It defines the following items:

Fred Drake's avatar
Fred Drake committed
19 20 21 22 23 24
\begin{classdesc}{Message}{fp\optional{, seekable}}
Return a new instance of the \class{Message} class.  This is a
subclass of the \class{rfc822.Message} class, with some additional
methods (see below).  The \var{seekable} argument has the same meaning
as for \class{rfc822.Message}.
\end{classdesc}
Guido van Rossum's avatar
Guido van Rossum committed
25 26 27 28

\begin{funcdesc}{choose_boundary}{}
Return a unique string that has a high likelihood of being usable as a
part boundary.  The string has the form
Fred Drake's avatar
Fred Drake committed
29
\code{'\var{hostipaddr}.\var{uid}.\var{pid}.\var{timestamp}.\var{random}'}.
Guido van Rossum's avatar
Guido van Rossum committed
30 31
\end{funcdesc}

Fred Drake's avatar
Fred Drake committed
32
\begin{funcdesc}{decode}{input, output, encoding}
Guido van Rossum's avatar
Guido van Rossum committed
33 34 35
Read data encoded using the allowed MIME \var{encoding} from open file
object \var{input} and write the decoded data to open file object
\var{output}.  Valid values for \var{encoding} include
36 37 38 39
\code{'base64'}, \code{'quoted-printable'}, \code{'uuencode'},
\code{'x-uuencode'}, \code{'uue'}, \code{'x-uue'}, \code{'7bit'}, and 
\code{'8bit'}.  Decoding messages encoded in \code{'7bit'} or \code{'8bit'}
has no effect.  The input is simply copied to the output.
Guido van Rossum's avatar
Guido van Rossum committed
40 41
\end{funcdesc}

42
\begin{funcdesc}{encode}{input, output, encoding}
Guido van Rossum's avatar
Guido van Rossum committed
43 44
Read data from open file object \var{input} and write it encoded using
the allowed MIME \var{encoding} to open file object \var{output}.
Fred Drake's avatar
Fred Drake committed
45
Valid values for \var{encoding} are the same as for \method{decode()}.
Guido van Rossum's avatar
Guido van Rossum committed
46 47
\end{funcdesc}

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}.
Guido van Rossum's avatar
Guido van Rossum committed
51 52
\end{funcdesc}

53
\begin{funcdesc}{copybinary}{input, output}
54 55
Read blocks until \EOF{} from open file \var{input} and write them to
open file \var{output}.  The block size is currently fixed at 8192.
Guido van Rossum's avatar
Guido van Rossum committed
56 57 58
\end{funcdesc}


59
\begin{seealso}
60
  \seemodule{email}{Comprehensive email handling package; supersedes
61
                    the \module{mimetools} module.}
62 63
  \seemodule{rfc822}{Provides the base class for
                     \class{mimetools.Message}.}
64 65
  \seemodule{multifile}{Support for reading files which contain
                        distinct parts, such as MIME data.}
66 67 68 69
  \seeurl{http://www.cs.uu.nl/wais/html/na-dir/mail/mime-faq/.html}{
          The MIME Frequently Asked Questions document.  For an
          overview of MIME, see the answer to question 1.1 in Part 1
          of this document.}
70 71 72
\end{seealso}


73 74
\subsection{Additional Methods of Message Objects
            \label{mimetools-message-objects}}
Guido van Rossum's avatar
Guido van Rossum committed
75

Fred Drake's avatar
Fred Drake committed
76 77
The \class{Message} class defines the following methods in
addition to the \class{rfc822.Message} methods:
Guido van Rossum's avatar
Guido van Rossum committed
78

79
\begin{methoddesc}{getplist}{}
80 81
Return the parameter list of the \mailheader{Content-Type} header.
This is a list of strings.  For parameters of the form
Guido van Rossum's avatar
Guido van Rossum committed
82 83 84
\samp{\var{key}=\var{value}}, \var{key} is converted to lower case but
\var{value} is not.  For example, if the message contains the header
\samp{Content-type: text/html; spam=1; Spam=2; Spam} then
Fred Drake's avatar
Fred Drake committed
85
\method{getplist()} will return the Python list \code{['spam=1',
Guido van Rossum's avatar
Guido van Rossum committed
86
'spam=2', 'Spam']}.
87
\end{methoddesc}
Guido van Rossum's avatar
Guido van Rossum committed
88

89
\begin{methoddesc}{getparam}{name}
Guido van Rossum's avatar
Guido van Rossum committed
90
Return the \var{value} of the first parameter (as returned by
Raymond Hettinger's avatar
Raymond Hettinger committed
91
\method{getplist()}) of the form \samp{\var{name}=\var{value}} for the
Guido van Rossum's avatar
Guido van Rossum committed
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}
Guido van Rossum's avatar
Guido van Rossum committed
95

96
\begin{methoddesc}{getencoding}{}
97 98 99 100
Return the encoding specified in the
\mailheader{Content-Transfer-Encoding} message header.  If no such
header exists, return \code{'7bit'}.  The encoding is converted to
lower case.
101
\end{methoddesc}
Guido van Rossum's avatar
Guido van Rossum committed
102

103
\begin{methoddesc}{gettype}{}
104
Return the message type (of the form \samp{\var{type}/\var{subtype}})
105 106 107
as specified in the \mailheader{Content-Type} header.  If no such
header exists, return \code{'text/plain'}.  The type is converted to
lower case.
108
\end{methoddesc}
Guido van Rossum's avatar
Guido van Rossum committed
109

110
\begin{methoddesc}{getmaintype}{}
111 112 113
Return the main type as specified in the \mailheader{Content-Type}
header.  If no such header exists, return \code{'text'}.  The main
type is converted to lower case.
114
\end{methoddesc}
Guido van Rossum's avatar
Guido van Rossum committed
115

116
\begin{methoddesc}{getsubtype}{}
117 118 119
Return the subtype as specified in the \mailheader{Content-Type}
header.  If no such header exists, return \code{'plain'}.  The subtype
is converted to lower case.
120
\end{methoddesc}