blob: 3e247a9256342ef8d3c33c576636a6451b91b098 [file] [log] [blame]
Barry Warsaw5e634632001-09-26 05:23:47 +00001\declaremodule{standard}{email.Encoders}
2\modulesynopsis{Encoders for email message payloads.}
Barry Warsaw5e634632001-09-26 05:23:47 +00003
4When creating \class{Message} objects from scratch, you often need to
5encode the payloads for transport through compliant mail servers.
Barry Warsawc5f8fe32001-09-26 22:21:52 +00006This is especially true for \mimetype{image/*} and \mimetype{text/*}
7type messages containing binary data.
Barry Warsaw5e634632001-09-26 05:23:47 +00008
9The \module{email} package provides some convenient encodings in its
10\module{Encoders} module. These encoders are actually used by the
11\class{MIMEImage} and \class{MIMEText} class constructors to provide default
12encodings. All encoder functions take exactly one argument, the
13message object to encode. They usually extract the payload, encode
14it, and reset the payload to this newly encoded value. They should also
Barry Warsawc5f8fe32001-09-26 22:21:52 +000015set the \mailheader{Content-Transfer-Encoding} header as appropriate.
Barry Warsaw5e634632001-09-26 05:23:47 +000016
17Here are the encoding functions provided:
18
19\begin{funcdesc}{encode_quopri}{msg}
20Encodes the payload into \emph{Quoted-Printable} form and sets the
21\code{Content-Transfer-Encoding:} header to
22\code{quoted-printable}\footnote{Note that encoding with
23\method{encode_quopri()} also encodes all tabs and space characters in
24the data.}.
25This is a good encoding to use when most of your payload is normal
26printable data, but contains a few unprintable characters.
27\end{funcdesc}
28
29\begin{funcdesc}{encode_base64}{msg}
30Encodes the payload into \emph{Base64} form and sets the
Barry Warsawc5f8fe32001-09-26 22:21:52 +000031\mailheader{Content-Transfer-Encoding} header to
Barry Warsaw5e634632001-09-26 05:23:47 +000032\code{base64}. This is a good encoding to use when most of your payload
33is unprintable data since it is a more compact form than
34Quoted-Printable. The drawback of Base64 encoding is that it
35renders the text non-human readable.
36\end{funcdesc}
37
38\begin{funcdesc}{encode_7or8bit}{msg}
39This doesn't actually modify the message's payload, but it does set
Barry Warsawc5f8fe32001-09-26 22:21:52 +000040the \mailheader{Content-Transfer-Encoding} header to either \code{7bit} or
Barry Warsaw5e634632001-09-26 05:23:47 +000041\code{8bit} as appropriate, based on the payload data.
42\end{funcdesc}
43
44\begin{funcdesc}{encode_noop}{msg}
45This does nothing; it doesn't even set the
Barry Warsawc5f8fe32001-09-26 22:21:52 +000046\mailheader{Content-Transfer-Encoding} header.
Barry Warsaw5e634632001-09-26 05:23:47 +000047\end{funcdesc}