# 12.3 `mimetools` -- Tools for parsing MIME messages

This module defines a subclass of the `rfc822` module's `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:

`Message` (fp[, seekable])
  Return a new instance of the `Message` class. This is a subclass of the `rfc822.Message` class, with some additional methods (see below). The seekable argument has the same meaning as for `rfc822.Message`.

`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'`.

`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'` and `'uuencode'`.

`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 `decode()`.

`copyliteral` (input, output)
  Read lines from open file input until EOF and write them to open file output.

`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.

See Also:

Module `rfc822`:
  Provides the base class for `mimetools.Message`.

Module `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.

Subsections

- 12.3.1 Additional Methods of Message Objects