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