1 \section{\module{mimetools
} ---
2 Tools for parsing MIME messages
}
4 \declaremodule{standard
}{mimetools
}
5 \modulesynopsis{Tools for parsing MIME-style message bodies.
}
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
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.
17 It defines the following items:
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
}.
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
}'
}.
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.
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()
}.
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
}.
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.
60 \seemodule{email
}{Comprehensive email handling package; supercedes
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
73 \subsection{Additional Methods of Message Objects
74 \label{mimetools-message-objects
}}
76 The
\class{Message
} class defines the following methods in
77 addition to the
\class{rfc822.Message
} methods:
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',
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.
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
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
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.
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.