# cpython-withatomic / Doc / libmimify.tex

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 \section{Standard Module \sectcode{mimify}} \stmodindex{mimify} \renewcommand{\indexsubitem}{(in module mimify)} 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: \begin{verbatim} unmimify message edit message mimify message send message \end{verbatim} The modules defines the following user-callable functions and user-settable variables: \begin{funcdesc}{mimify}{infile, outfile} Copy the message in \var{infile} to \var{outfile}, converting parts to quoted-printable and adding MIME mail headers when necessary. \var{infile} and \var{outfile} can be file objects (actually, any object that has a \code{readline} method (for \var{infile}) or a \code{write} method (for \var{outfile})) or strings naming the files. If \var{infile} and \var{outfile} are both strings, they may have the same value. \end{funcdesc} \begin{funcdesc}{unmimify}{infile, outfile, decode_base64 = 0} Copy the message in \var{infile} to \var{outfile}, decoding all quoted-printable parts. \var{infile} and \var{outfile} can be file objects (actually, any object that has a \code{readline} method (for \var{infile}) or a \code{write} method (for \var{outfile})) or strings naming the files. If \var{infile} and \var{outfile} are both strings, they may have the same value. If the \var{decode_base64} argument is provided and tests true, any parts that are coded in the base64 encoding are decoded as well. \end{funcdesc} \begin{funcdesc}{mime_decode_header}{line} Return a decoded version of the encoded header line in \var{line}. \end{funcdesc} \begin{funcdesc}{mime_encode_header}{line} Return a MIME-encoded version of the header line in \var{line}. \end{funcdesc} \begin{datadesc}{MAXLEN} By default, a part will be encoded as quoted-printable when it contains any non-ASCII characters (i.e., characters with the 8th bit set), or if there are any lines longer than \code{MAXLEN} characters (default value 200). \end{datadesc} \begin{datadesc}{CHARSET} When not specified in the mail headers, a character set must be filled in. The string used is stored in \code{CHARSET}, and the default value is ISO-8859-1 (also known as Latin1 (latin-one)). \end{datadesc} This module can also be used from the command line. Usage is as follows: \begin{verbatim} mimify.py -e [-l length] [infile [outfile]] mimify.py -d [-b] [infile [outfile]] \end{verbatim} to encode (mimify) and decode (unmimify) respectively. \var{infile} defaults to standard input, \var{outfile} defaults to standard output. The same file can be specified for input and output. If the \code{-l} option is given when encoding, if there are any lines longer than the specified \var{length}, the containing part will be encoded. If the \code{-b} option is given when decoding, any base64 parts will be decoded as well.