2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
:mod:`mimetools` --- Tools for parsing MIME messages
|
|
|
|
====================================================
|
|
|
|
|
|
|
|
.. module:: mimetools
|
|
|
|
:synopsis: Tools for parsing MIME-style message bodies.
|
2007-08-15 15:41:25 -03:00
|
|
|
:deprecated:
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. deprecated:: 2.3
|
|
|
|
The :mod:`email` package should be used in preference to the :mod:`mimetools`
|
2008-06-12 11:23:49 -03:00
|
|
|
module. This module is present only to maintain backward compatibility, and
|
|
|
|
it has been removed in 3.x.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. 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.
|
|
|
|
|
2008-03-14 21:20:19 -03:00
|
|
|
http://faqs.cs.uu.nl/na-dir/mail/mime-faq/.html
|
2007-08-15 11:28:01 -03:00
|
|
|
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.
|
|
|
|
|