diff options
Diffstat (limited to 'Doc/library/mimetools.rst')
-rw-r--r-- | Doc/library/mimetools.rst | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/Doc/library/mimetools.rst b/Doc/library/mimetools.rst new file mode 100644 index 0000000..603bec6 --- /dev/null +++ b/Doc/library/mimetools.rst @@ -0,0 +1,130 @@ + +:mod:`mimetools` --- Tools for parsing MIME messages +==================================================== + +.. module:: mimetools + :synopsis: Tools for parsing MIME-style message bodies. + + +.. deprecated:: 2.3 + The :mod:`email` package should be used in preference to the :mod:`mimetools` + module. This module is present only to maintain backward compatibility. + +.. index:: module: rfc822 + +This module defines a subclass of the :mod:`rfc822` module's :class:`Message` +class and a number of utility functions that are useful for the manipulation for +MIME multipart or encoded message. + +It defines the following items: + + +.. class:: Message(fp[, 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 + *seekable* argument has the same meaning as for :class:`rfc822.Message`. + + +.. function:: choose_boundary() + + Return a unique string that has a high likelihood of being usable as a part + boundary. The string has the form ``'hostipaddr.uid.pid.timestamp.random'``. + + +.. function:: decode(input, output, encoding) + + Read data encoded using the allowed MIME *encoding* from open file object + *input* and write the decoded data to open file object *output*. Valid values + for *encoding* include ``'base64'``, ``'quoted-printable'``, ``'uuencode'``, + ``'x-uuencode'``, ``'uue'``, ``'x-uue'``, ``'7bit'``, and ``'8bit'``. Decoding + messages encoded in ``'7bit'`` or ``'8bit'`` has no effect. The input is simply + copied to the output. + + +.. function:: encode(input, output, encoding) + + Read data from open file object *input* and write it encoded using the allowed + MIME *encoding* to open file object *output*. Valid values for *encoding* are + the same as for :meth:`decode`. + + +.. function:: copyliteral(input, output) + + Read lines from open file *input* until EOF and write them to open file + *output*. + + +.. function:: copybinary(input, output) + + Read blocks until EOF from open file *input* and write them to open file + *output*. The block size is currently fixed at 8192. + + +.. seealso:: + + Module :mod:`email` + Comprehensive email handling package; supersedes the :mod:`mimetools` module. + + Module :mod:`rfc822` + Provides the base class for :class:`mimetools.Message`. + + Module :mod:`multifile` + Support for reading files which contain distinct parts, such as MIME data. + + 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. + + +.. _mimetools-message-objects: + +Additional Methods of Message Objects +------------------------------------- + +The :class:`Message` class defines the following methods in addition to the +:class:`rfc822.Message` methods: + + +.. method:: Message.getplist() + + Return the parameter list of the :mailheader:`Content-Type` header. This is a + list of strings. For parameters of the form ``key=value``, *key* is converted + to lower case but *value* is not. For example, if the message contains the + header ``Content-type: text/html; spam=1; Spam=2; Spam`` then :meth:`getplist` + will return the Python list ``['spam=1', 'spam=2', 'Spam']``. + + +.. method:: Message.getparam(name) + + Return the *value* of the first parameter (as returned by :meth:`getplist`) of + the form ``name=value`` for the given *name*. If *value* is surrounded by + quotes of the form '``<``...\ ``>``' or '``"``...\ ``"``', these are removed. + + +.. method:: Message.getencoding() + + Return the encoding specified in the :mailheader:`Content-Transfer-Encoding` + message header. If no such header exists, return ``'7bit'``. The encoding is + converted to lower case. + + +.. method:: Message.gettype() + + Return the message type (of the form ``type/subtype``) as specified in the + :mailheader:`Content-Type` header. If no such header exists, return + ``'text/plain'``. The type is converted to lower case. + + +.. method:: Message.getmaintype() + + Return the main type as specified in the :mailheader:`Content-Type` header. If + no such header exists, return ``'text'``. The main type is converted to lower + case. + + +.. method:: Message.getsubtype() + + Return the subtype as specified in the :mailheader:`Content-Type` header. If no + such header exists, return ``'plain'``. The subtype is converted to lower case. + |