1 \section{\module{mimetools
} ---
2 Tools for parsing MIME messages
}
4 \declaremodule{standard
}{mimetools
}
5 \modulesynopsis{Tools for parsing MIME-style message bodies.
}
8 This module defines a subclass of the
9 \refmodule{rfc822
}\refstmodindex{rfc822
} module's
10 \class{Message
} class and a number of utility functions that are
11 useful for the manipulation for MIME multipart or encoded message.
13 It defines the following items:
15 \begin{classdesc
}{Message
}{fp
\optional{, seekable
}}
16 Return a new instance of the
\class{Message
} class. This is a
17 subclass of the
\class{rfc822.Message
} class, with some additional
18 methods (see below). The
\var{seekable
} argument has the same meaning
19 as for
\class{rfc822.Message
}.
22 \begin{funcdesc
}{choose_boundary
}{}
23 Return a unique string that has a high likelihood of being usable as a
24 part boundary. The string has the form
25 \code{'
\var{hostipaddr
}.
\var{uid
}.
\var{pid
}.
\var{timestamp
}.
\var{random
}'
}.
28 \begin{funcdesc
}{decode
}{input, output, encoding
}
29 Read data encoded using the allowed MIME
\var{encoding
} from open file
30 object
\var{input
} and write the decoded data to open file object
31 \var{output
}. Valid values for
\var{encoding
} include
32 \code{'base64'
},
\code{'quoted-printable'
},
\code{'uuencode'
},
33 \code{'x-uuencode'
},
\code{'uue'
},
\code{'x-uue'
},
\code{'
7bit'
}, and
34 \code{'
8bit'
}. Decoding messages encoded in
\code{'
7bit'
} or
\code{'
8bit'
}
35 has no effect. The input is simply copied to the output.
38 \begin{funcdesc
}{encode
}{input, output, encoding
}
39 Read data from open file object
\var{input
} and write it encoded using
40 the allowed MIME
\var{encoding
} to open file object
\var{output
}.
41 Valid values for
\var{encoding
} are the same as for
\method{decode()
}.
44 \begin{funcdesc
}{copyliteral
}{input, output
}
45 Read lines from open file
\var{input
} until
\EOF{} and write them to
46 open file
\var{output
}.
49 \begin{funcdesc
}{copybinary
}{input, output
}
50 Read blocks until
\EOF{} from open file
\var{input
} and write them to
51 open file
\var{output
}. The block size is currently fixed at
8192.
56 \seemodule{rfc822
}{Provides the base class for
57 \class{mimetools.Message
}.
}
58 \seemodule{multifile
}{Support for reading files which contain
59 distinct parts, such as MIME data.
}
60 \seeurl{http://www.cs.uu.nl/wais/html/na-dir/mail/mime-faq/.html
}{
61 The MIME Frequently Asked Questions
document. For an
62 overview of MIME, see the answer to question
1.1 in Part
1
67 \subsection{Additional Methods of Message Objects
68 \label{mimetools-message-objects
}}
70 The
\class{Message
} class defines the following methods in
71 addition to the
\class{rfc822.Message
} methods:
73 \begin{methoddesc
}{getplist
}{}
74 Return the parameter list of the
\mailheader{Content-Type
} header.
75 This is a list of strings. For parameters of the form
76 \samp{\var{key
}=
\var{value
}},
\var{key
} is converted to lower case but
77 \var{value
} is not. For example, if the message contains the header
78 \samp{Content-type: text/html; spam=
1; Spam=
2; Spam
} then
79 \method{getplist()
} will return the Python list
\code{['spam=
1',
83 \begin{methoddesc
}{getparam
}{name
}
84 Return the
\var{value
} of the first parameter (as returned by
85 \method{getplist()
} of the form
\samp{\var{name
}=
\var{value
}} for the
86 given
\var{name
}. If
\var{value
} is surrounded by quotes of the form
87 `
\code{<
}...
\code{>
}' or `
\code{"
}...
\code{"
}', these are removed.
90 \begin{methoddesc
}{getencoding
}{}
91 Return the encoding specified in the
92 \mailheader{Content-Transfer-Encoding
} message header. If no such
93 header exists, return
\code{'
7bit'
}. The encoding is converted to
97 \begin{methoddesc
}{gettype
}{}
98 Return the message type (of the form
\samp{\var{type
}/
\var{subtype
}})
99 as specified in the
\mailheader{Content-Type
} header. If no such
100 header exists, return
\code{'text/plain'
}. The type is converted to
104 \begin{methoddesc
}{getmaintype
}{}
105 Return the main type as specified in the
\mailheader{Content-Type
}
106 header. If no such header exists, return
\code{'text'
}. The main
107 type is converted to lower case.
110 \begin{methoddesc
}{getsubtype
}{}
111 Return the subtype as specified in the
\mailheader{Content-Type
}
112 header. If no such header exists, return
\code{'plain'
}. The subtype
113 is converted to lower case.