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

This module defines a subclass of the `rfc822.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 until EOF from open file input 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.

- 12.7.1 Additional Methods of Message objects