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'
} and
\code{'uuencode'
}.
35 \begin{funcdesc
}{encode
}{input, output, encoding
}
36 Read data from open file object
\var{input
} and write it encoded using
37 the allowed MIME
\var{encoding
} to open file object
\var{output
}.
38 Valid values for
\var{encoding
} are the same as for
\method{decode()
}.
41 \begin{funcdesc
}{copyliteral
}{input, output
}
42 Read lines from open file
\var{input
} until
\EOF{} and write them to
43 open file
\var{output
}.
46 \begin{funcdesc
}{copybinary
}{input, output
}
47 Read blocks until
\EOF{} from open file
\var{input
} and write them to
48 open file
\var{output
}. The block size is currently fixed at
8192.
53 \seemodule{rfc822
}{Provides the base class for
54 \class{mimetools.Message
}.
}
55 \seemodule{multifile
}{Support for reading files which contain
56 distinct parts, such as MIME data.
}
57 \seeurl{http://www.cs.uu.nl/wais/html/na-dir/mail/mime-faq/.html
}{
58 The MIME Frequently Asked Questions
document. For an
59 overview of MIME, see the answer to question
1.1 in Part
1
64 \subsection{Additional Methods of Message Objects
65 \label{mimetools-message-objects
}}
67 The
\class{Message
} class defines the following methods in
68 addition to the
\class{rfc822.Message
} methods:
70 \begin{methoddesc
}{getplist
}{}
71 Return the parameter list of the
\code{content-type
} header. This is
72 a list of strings. For parameters of the form
73 \samp{\var{key
}=
\var{value
}},
\var{key
} is converted to lower case but
74 \var{value
} is not. For example, if the message contains the header
75 \samp{Content-type: text/html; spam=
1; Spam=
2; Spam
} then
76 \method{getplist()
} will return the Python list
\code{['spam=
1',
80 \begin{methoddesc
}{getparam
}{name
}
81 Return the
\var{value
} of the first parameter (as returned by
82 \method{getplist()
} of the form
\samp{\var{name
}=
\var{value
}} for the
83 given
\var{name
}. If
\var{value
} is surrounded by quotes of the form
84 `
\code{<
}...
\code{>
}' or `
\code{"
}...
\code{"
}', these are removed.
87 \begin{methoddesc
}{getencoding
}{}
88 Return the encoding specified in the
\code{content-transfer-encoding
}
89 message header. If no such header exists, return
\code{'
7bit'
}. The
90 encoding is converted to lower case.
93 \begin{methoddesc
}{gettype
}{}
94 Return the message type (of the form
\samp{\var{type
}/
\var{subtype
}})
95 as specified in the
\code{content-type
} header. If no such header
96 exists, return
\code{'text/plain'
}. The type is converted to lower
100 \begin{methoddesc
}{getmaintype
}{}
101 Return the main type as specified in the
\code{content-type
} header.
102 If no such header exists, return
\code{'text'
}. The main type is
103 converted to lower case.
106 \begin{methoddesc
}{getsubtype
}{}
107 Return the subtype as specified in the
\code{content-type
} header. If
108 no such header exists, return
\code{'plain'
}. The subtype is
109 converted to lower case.