18.9. "mimify" — MIME processing of mail messages
*************************************************

Deprecated since version 2.3: The "email" package should be used in
preference to the "mimify" module.  This module is present only to
maintain backward compatibility.

The "mimify" module defines two functions to convert mail messages to
and from MIME format.  The mail message can be either a simple message
or a so-called multipart message.  Each part is treated separately.
Mimifying (a part of) a message entails encoding the message as
quoted-printable if it contains any characters that cannot be
represented using 7-bit ASCII.  Unmimifying (a part of) a message
entails undoing the quoted-printable encoding.  Mimify and unmimify
are especially useful when a message has to be edited before being
sent.  Typical use would be:

   unmimify message
   edit message
   mimify message
   send message

The modules defines the following user-callable functions and user-
settable variables:

mimify.mimify(infile, outfile)

   Copy the message in *infile* to *outfile*, converting parts to
   quoted-printable and adding MIME mail headers when necessary.
   *infile* and *outfile* can be file objects (actually, any object
   that has a "readline()" method (for *infile*) or a "write()" method
   (for *outfile*)) or strings naming the files. If *infile* and
   *outfile* are both strings, they may have the same value.

mimify.unmimify(infile, outfile[, decode_base64])

   Copy the message in *infile* to *outfile*, decoding all quoted-
   printable parts. *infile* and *outfile* can be file objects
   (actually, any object that has a "readline()" method (for *infile*)
   or a "write()" method (for *outfile*)) or strings naming the files.
   If *infile* and *outfile* are both strings, they may have the same
   value. If the *decode_base64* argument is provided and tests true,
   any parts that are coded in the base64 encoding are decoded as
   well.

mimify.mime_decode_header(line)

   Return a decoded version of the encoded header line in *line*. This
   only supports the ISO 8859-1 charset (Latin-1).

mimify.mime_encode_header(line)

   Return a MIME-encoded version of the header line in *line*.

mimify.MAXLEN

   By default, a part will be encoded as quoted-printable when it
   contains any non-ASCII characters (characters with the 8th bit
   set), or if there are any lines longer than "MAXLEN" characters
   (default value 200).

mimify.CHARSET

   When not specified in the mail headers, a character set must be
   filled in.  The string used is stored in "CHARSET", and the default
   value is ISO-8859-1 (also known as Latin1 (latin-one)).

This module can also be used from the command line.  Usage is as
follows:

   mimify.py -e [-l length] [infile [outfile]]
   mimify.py -d [-b] [infile [outfile]]

to encode (mimify) and decode (unmimify) respectively.  *infile*
defaults to standard input, *outfile* defaults to standard output. The
same file can be specified for input and output.

If the **-l** option is given when encoding, if there are any lines
longer than the specified *length*, the containing part will be
encoded.

If the **-b** option is given when decoding, any base64 parts will be
decoded as well.

See also:

  Module "quopri"
     Encode and decode MIME quoted-printable files.
