summaryrefslogtreecommitdiffstats
path: root/Doc/library/mimetools.rst
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/library/mimetools.rst')
-rw-r--r--Doc/library/mimetools.rst130
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.
+