summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
Diffstat (limited to 'Doc')
-rw-r--r--Doc/library/email.charset.rst4
-rw-r--r--Doc/library/email.encoders.rst18
-rw-r--r--Doc/library/email.errors.rst13
-rw-r--r--Doc/library/email.generator.rst8
-rw-r--r--Doc/library/email.header.rst23
-rw-r--r--Doc/library/email.message.rst30
-rw-r--r--Doc/library/email.mime.rst110
-rw-r--r--Doc/library/email.parser.rst29
8 files changed, 124 insertions, 111 deletions
diff --git a/Doc/library/email.charset.rst b/Doc/library/email.charset.rst
index 01529a0..1244615 100644
--- a/Doc/library/email.charset.rst
+++ b/Doc/library/email.charset.rst
@@ -161,8 +161,8 @@ Import this class from the :mod:`email.charset` module.
charset to the output charset automatically. This is not useful for
multibyte character sets, which have line length issues (multibyte
characters must be split on a character, not a byte boundary); use the
- higher-level :class:`Header` class to deal with these issues (see
- :mod:`email.header`). *convert* defaults to ``False``.
+ higher-level :class:`~email.header.Header` class to deal with these issues
+ (see :mod:`email.header`). *convert* defaults to ``False``.
The type of encoding (base64 or quoted-printable) will be based on the
*header_encoding* attribute.
diff --git a/Doc/library/email.encoders.rst b/Doc/library/email.encoders.rst
index 28669c4..5421b9f 100644
--- a/Doc/library/email.encoders.rst
+++ b/Doc/library/email.encoders.rst
@@ -5,18 +5,18 @@
:synopsis: Encoders for email message payloads.
-When creating :class:`Message` objects from scratch, you often need to encode
-the payloads for transport through compliant mail servers. This is especially
-true for :mimetype:`image/\*` and :mimetype:`text/\*` type messages containing
-binary data.
+When creating :class:`~email.message.Message` objects from scratch, you often
+need to encode the payloads for transport through compliant mail servers. This
+is especially true for :mimetype:`image/\*` and :mimetype:`text/\*` type messages
+containing binary data.
The :mod:`email` package provides some convenient encodings in its
:mod:`encoders` module. These encoders are actually used by the
-:class:`MIMEAudio` and :class:`MIMEImage` class constructors to provide default
-encodings. All encoder functions take exactly one argument, the message object
-to encode. They usually extract the payload, encode it, and reset the payload
-to this newly encoded value. They should also set the
-:mailheader:`Content-Transfer-Encoding` header as appropriate.
+:class:`~email.mime.audio.MIMEAudio` and :class:`~email.mime.image.MIMEImage`
+class constructors to provide default encodings. All encoder functions take
+exactly one argument, the message object to encode. They usually extract the
+payload, encode it, and reset the payload to this newly encoded value. They
+should also set the :mailheader:`Content-Transfer-Encoding` header as appropriate.
Here are the encoding functions provided:
diff --git a/Doc/library/email.errors.rst b/Doc/library/email.errors.rst
index c68262f..2bd3ae4 100644
--- a/Doc/library/email.errors.rst
+++ b/Doc/library/email.errors.rst
@@ -17,8 +17,8 @@ The following exception classes are defined in the :mod:`email.errors` module:
.. exception:: MessageParseError()
- This is the base class for exceptions thrown by the :class:`Parser` class. It
- is derived from :exc:`MessageError`.
+ This is the base class for exceptions thrown by the :class:`~email.parser.Parser`
+ class. It is derived from :exc:`MessageError`.
.. exception:: HeaderParseError()
@@ -55,11 +55,12 @@ The following exception classes are defined in the :mod:`email.errors` module:
Since :meth:`Message.add_payload` is deprecated, this exception is rarely raised
in practice. However the exception may also be raised if the :meth:`attach`
method is called on an instance of a class derived from
- :class:`MIMENonMultipart` (e.g. :class:`MIMEImage`).
+ :class:`~email.mime.nonmultipart.MIMENonMultipart` (e.g.
+ :class:`~email.mime.image.MIMEImage`).
-Here's the list of the defects that the :class:`FeedParser` can find while
-parsing messages. Note that the defects are added to the message where the
-problem was found, so for example, if a message nested inside a
+Here's the list of the defects that the :class:`~email.mime.parser.FeedParser`
+can find while parsing messages. Note that the defects are added to the message
+where the problem was found, so for example, if a message nested inside a
:mimetype:`multipart/alternative` had a malformed header, that nested message
object would have a defect, but the containing messages would not.
diff --git a/Doc/library/email.generator.rst b/Doc/library/email.generator.rst
index 4e2ea2f..0f5788a 100644
--- a/Doc/library/email.generator.rst
+++ b/Doc/library/email.generator.rst
@@ -16,8 +16,8 @@ functionality of the bundled generator; you could write one from scratch
yourself. However the bundled generator knows how to generate most email in a
standards-compliant way, should handle MIME and non-MIME email messages just
fine, and is designed so that the transformation from flat text, to a message
-structure via the :class:`Parser` class, and back to flat text, is idempotent
-(the input is identical to the output).
+structure via the :class:`~email.parser.Parser` class, and back to flat text,
+is idempotent (the input is identical to the output).
Here are the public methods of the :class:`Generator` class, imported from the
:mod:`email.generator` module:
@@ -41,8 +41,8 @@ Here are the public methods of the :class:`Generator` class, imported from the
Optional *maxheaderlen* specifies the longest length for a non-continued header.
When a header line is longer than *maxheaderlen* (in characters, with tabs
expanded to 8 spaces), the header will be split as defined in the
- :mod:`email.header.Header` class. Set to zero to disable header wrapping. The
- default is 78, as recommended (but not required) by :rfc:`2822`.
+ :class:`~email.header.Header` class. Set to zero to disable header wrapping.
+ The default is 78, as recommended (but not required) by :rfc:`2822`.
The other public :class:`Generator` methods are:
diff --git a/Doc/library/email.header.rst b/Doc/library/email.header.rst
index 7ee4a2d..5da1d95 100644
--- a/Doc/library/email.header.rst
+++ b/Doc/library/email.header.rst
@@ -21,10 +21,10 @@ in its :mod:`email.header` and :mod:`email.charset` modules.
If you want to include non-ASCII characters in your email headers, say in the
:mailheader:`Subject` or :mailheader:`To` fields, you should use the
-:class:`Header` class and assign the field in the :class:`Message` object to an
-instance of :class:`Header` instead of using a string for the header value.
-Import the :class:`Header` class from the :mod:`email.header` module. For
-example::
+:class:`Header` class and assign the field in the :class:`~email.message.Message`
+object to an instance of :class:`Header` instead of using a string for the header
+value. Import the :class:`Header` class from the :mod:`email.header` module.
+For example::
>>> from email.message import Message
>>> from email.header import Header
@@ -39,9 +39,9 @@ example::
Notice here how we wanted the :mailheader:`Subject` field to contain a non-ASCII
character? We did this by creating a :class:`Header` instance and passing in
the character set that the byte string was encoded in. When the subsequent
-:class:`Message` instance was flattened, the :mailheader:`Subject` field was
-properly :rfc:`2047` encoded. MIME-aware mail readers would show this header
-using the embedded ISO-8859-1 character.
+:class:`~email.message.Message` instance was flattened, the :mailheader:`Subject`
+field was properly :rfc:`2047` encoded. MIME-aware mail readers would show this
+header using the embedded ISO-8859-1 character.
Here is the :class:`Header` class description:
@@ -81,10 +81,11 @@ Here is the :class:`Header` class description:
Append the string *s* to the MIME header.
- Optional *charset*, if given, should be a :class:`Charset` instance (see
- :mod:`email.charset`) or the name of a character set, which will be
- converted to a :class:`Charset` instance. A value of ``None`` (the
- default) means that the *charset* given in the constructor is used.
+ Optional *charset*, if given, should be a :class:`~email.charset.Charset`
+ instance (see :mod:`email.charset`) or the name of a character set, which
+ will be converted to a :class:`~email.charset.Charset` instance. A value
+ of ``None`` (the default) means that the *charset* given in the constructor
+ is used.
*s* may be an instance of :class:`bytes` or :class:`str`. If it is an
instance of :class:`bytes`, then *charset* is the encoding of that byte
diff --git a/Doc/library/email.message.rst b/Doc/library/email.message.rst
index edeed16..7f70898 100644
--- a/Doc/library/email.message.rst
+++ b/Doc/library/email.message.rst
@@ -45,8 +45,8 @@ Here are the methods of the :class:`Message` class:
Note that this method is provided as a convenience and may not always
format the message the way you want. For example, by default it mangles
lines that begin with ``From``. For more flexibility, instantiate a
- :class:`Generator` instance and use its :meth:`flatten` method directly.
- For example::
+ :class:`~email.generator.Generator` instance and use its :meth:`flatten`
+ method directly. For example::
from io import StringIO
from email.generator import Generator
@@ -122,11 +122,12 @@ Here are the methods of the :class:`Message` class:
.. method:: set_charset(charset)
Set the character set of the payload to *charset*, which can either be a
- :class:`Charset` instance (see :mod:`email.charset`), a string naming a
- character set, or ``None``. If it is a string, it will be converted to a
- :class:`Charset` instance. If *charset* is ``None``, the ``charset``
- parameter will be removed from the :mailheader:`Content-Type`
- header. Anything else will generate a :exc:`TypeError`.
+ :class:`~email.charset.Charset` instance (see :mod:`email.charset`), a
+ string naming a character set, or ``None``. If it is a string, it will
+ be converted to a :class:`~email.charset.Charset` instance. If *charset*
+ is ``None``, the ``charset`` parameter will be removed from the
+ :mailheader:`Content-Type` header. Anything else will generate a
+ :exc:`TypeError`.
The message will be assumed to be of type :mimetype:`text/\*` encoded with
*charset.input_charset*. It will be converted to *charset.output_charset*
@@ -137,8 +138,8 @@ Here are the methods of the :class:`Message` class:
.. method:: get_charset()
- Return the :class:`Charset` instance associated with the message's
- payload.
+ Return the :class:`~email.charset.Charset` instance associated with the
+ message's payload.
The following methods implement a mapping-like interface for accessing the
message's :rfc:`2822` headers. Note that there are some semantic differences
@@ -445,7 +446,7 @@ Here are the methods of the :class:`Message` class:
that header has no ``charset`` parameter, *failobj* is returned.
Note that this method differs from :meth:`get_charset` which returns the
- :class:`Charset` instance for the default encoding of the message body.
+ :class:`~email.charset.Charset` instance for the default encoding of the message body.
.. method:: get_charsets([failobj])
@@ -495,10 +496,11 @@ Here are the methods of the :class:`Message` class:
text can become visible.
The *preamble* attribute contains this leading extra-armor text for MIME
- documents. When the :class:`Parser` discovers some text after the headers
- but before the first boundary string, it assigns this text to the
- message's *preamble* attribute. When the :class:`Generator` is writing
- out the plain text representation of a MIME message, and it finds the
+ documents. When the :class:`~email.parser.Parser` discovers some text
+ after the headers but before the first boundary string, it assigns this
+ text to the message's *preamble* attribute. When the
+ :class:`~email.generator.Generator` is writing out the plain text
+ representation of a MIME message, and it finds the
message has a *preamble* attribute, it will write this text in the area
between the headers and the first boundary. See :mod:`email.parser` and
:mod:`email.generator` for details.
diff --git a/Doc/library/email.mime.rst b/Doc/library/email.mime.rst
index 95407b0..0214d56 100644
--- a/Doc/library/email.mime.rst
+++ b/Doc/library/email.mime.rst
@@ -8,14 +8,15 @@
Ordinarily, you get a message object structure by passing a file or some text to
a parser, which parses the text and returns the root message object. However
you can also build a complete message structure from scratch, or even individual
-:class:`Message` objects by hand. In fact, you can also take an existing
-structure and add new :class:`Message` objects, move them around, etc. This
-makes a very convenient interface for slicing-and-dicing MIME messages.
+:class:`~email.message.Message` objects by hand. In fact, you can also take an
+existing structure and add new :class:`~email.message.Message` objects, move them
+around, etc. This makes a very convenient interface for slicing-and-dicing MIME
+messages.
-You can create a new object structure by creating :class:`Message` instances,
-adding attachments and all the appropriate headers manually. For MIME messages
-though, the :mod:`email` package provides some convenient subclasses to make
-things easier.
+You can create a new object structure by creating :class:`~email.message.Message`
+instances, adding attachments and all the appropriate headers manually. For MIME
+messages though, the :mod:`email` package provides some convenient subclasses to
+make things easier.
Here are the classes:
@@ -25,10 +26,11 @@ Here are the classes:
Module: :mod:`email.mime.base`
- This is the base class for all the MIME-specific subclasses of :class:`Message`.
- Ordinarily you won't create instances specifically of :class:`MIMEBase`,
- although you could. :class:`MIMEBase` is provided primarily as a convenient
- base class for more specific MIME-aware subclasses.
+ This is the base class for all the MIME-specific subclasses of
+ :class:`~email.message.Message`. Ordinarily you won't create instances
+ specifically of :class:`MIMEBase`, although you could. :class:`MIMEBase`
+ is provided primarily as a convenient base class for more specific
+ MIME-aware subclasses.
*_maintype* is the :mailheader:`Content-Type` major type (e.g. :mimetype:`text`
or :mimetype:`image`), and *_subtype* is the :mailheader:`Content-Type` minor
@@ -46,11 +48,11 @@ Here are the classes:
Module: :mod:`email.mime.nonmultipart`
- A subclass of :class:`MIMEBase`, this is an intermediate base class for MIME
- messages that are not :mimetype:`multipart`. The primary purpose of this class
- is to prevent the use of the :meth:`attach` method, which only makes sense for
- :mimetype:`multipart` messages. If :meth:`attach` is called, a
- :exc:`MultipartConversionError` exception is raised.
+ A subclass of :class:`~email.mime.base.MIMEBase`, this is an intermediate base
+ class for MIME messages that are not :mimetype:`multipart`. The primary
+ purpose of this class is to prevent the use of the :meth:`attach` method,
+ which only makes sense for :mimetype:`multipart` messages. If :meth:`attach`
+ is called, a :exc:`~email.errors.MultipartConversionError` exception is raised.
.. currentmodule:: email.mime.multipart
@@ -59,12 +61,12 @@ Here are the classes:
Module: :mod:`email.mime.multipart`
- A subclass of :class:`MIMEBase`, this is an intermediate base class for MIME
- messages that are :mimetype:`multipart`. Optional *_subtype* defaults to
- :mimetype:`mixed`, but can be used to specify the subtype of the message. A
- :mailheader:`Content-Type` header of :mimetype:`multipart/_subtype` will be
- added to the message object. A :mailheader:`MIME-Version` header will also be
- added.
+ A subclass of :class:`~email.mime.base.MIMEBase`, this is an intermediate base
+ class for MIME messages that are :mimetype:`multipart`. Optional *_subtype*
+ defaults to :mimetype:`mixed`, but can be used to specify the subtype of the
+ message. A :mailheader:`Content-Type` header of :mimetype:`multipart/_subtype`
+ will be added to the message object. A :mailheader:`MIME-Version` header will
+ also be added.
Optional *boundary* is the multipart boundary string. When ``None`` (the
default), the boundary is calculated when needed.
@@ -84,10 +86,11 @@ Here are the classes:
Module: :mod:`email.mime.application`
- A subclass of :class:`MIMENonMultipart`, the :class:`MIMEApplication` class is
- used to represent MIME message objects of major type :mimetype:`application`.
- *_data* is a string containing the raw byte data. Optional *_subtype* specifies
- the MIME subtype and defaults to :mimetype:`octet-stream`.
+ A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, the
+ :class:`MIMEApplication` class is used to represent MIME message objects of
+ major type :mimetype:`application`. *_data* is a string containing the raw
+ byte data. Optional *_subtype* specifies the MIME subtype and defaults to
+ :mimetype:`octet-stream`.
Optional *_encoder* is a callable (i.e. function) which will perform the actual
encoding of the data for transport. This callable takes one argument, which is
@@ -106,13 +109,14 @@ Here are the classes:
Module: :mod:`email.mime.audio`
- A subclass of :class:`MIMENonMultipart`, the :class:`MIMEAudio` class is used to
- create MIME message objects of major type :mimetype:`audio`. *_audiodata* is a
- string containing the raw audio data. If this data can be decoded by the
- standard Python module :mod:`sndhdr`, then the subtype will be automatically
- included in the :mailheader:`Content-Type` header. Otherwise you can explicitly
- specify the audio subtype via the *_subtype* parameter. If the minor type could
- not be guessed and *_subtype* was not given, then :exc:`TypeError` is raised.
+ A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, the
+ :class:`MIMEAudio` class is used to create MIME message objects of major type
+ :mimetype:`audio`. *_audiodata* is a string containing the raw audio data. If
+ this data can be decoded by the standard Python module :mod:`sndhdr`, then the
+ subtype will be automatically included in the :mailheader:`Content-Type` header.
+ Otherwise you can explicitly specify the audio subtype via the *_subtype*
+ parameter. If the minor type could not be guessed and *_subtype* was not given,
+ then :exc:`TypeError` is raised.
Optional *_encoder* is a callable (i.e. function) which will perform the actual
encoding of the audio data for transport. This callable takes one argument,
@@ -131,13 +135,14 @@ Here are the classes:
Module: :mod:`email.mime.image`
- A subclass of :class:`MIMENonMultipart`, the :class:`MIMEImage` class is used to
- create MIME message objects of major type :mimetype:`image`. *_imagedata* is a
- string containing the raw image data. If this data can be decoded by the
- standard Python module :mod:`imghdr`, then the subtype will be automatically
- included in the :mailheader:`Content-Type` header. Otherwise you can explicitly
- specify the image subtype via the *_subtype* parameter. If the minor type could
- not be guessed and *_subtype* was not given, then :exc:`TypeError` is raised.
+ A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, the
+ :class:`MIMEImage` class is used to create MIME message objects of major type
+ :mimetype:`image`. *_imagedata* is a string containing the raw image data. If
+ this data can be decoded by the standard Python module :mod:`imghdr`, then the
+ subtype will be automatically included in the :mailheader:`Content-Type` header.
+ Otherwise you can explicitly specify the image subtype via the *_subtype*
+ parameter. If the minor type could not be guessed and *_subtype* was not given,
+ then :exc:`TypeError` is raised.
Optional *_encoder* is a callable (i.e. function) which will perform the actual
encoding of the image data for transport. This callable takes one argument,
@@ -147,7 +152,8 @@ Here are the classes:
object as necessary. The default encoding is base64. See the
:mod:`email.encoders` module for a list of the built-in encoders.
- *_params* are passed straight through to the :class:`MIMEBase` constructor.
+ *_params* are passed straight through to the :class:`~email.mime.base.MIMEBase`
+ constructor.
.. currentmodule:: email.mime.message
@@ -156,10 +162,11 @@ Here are the classes:
Module: :mod:`email.mime.message`
- A subclass of :class:`MIMENonMultipart`, the :class:`MIMEMessage` class is used
- to create MIME objects of main type :mimetype:`message`. *_msg* is used as the
- payload, and must be an instance of class :class:`Message` (or a subclass
- thereof), otherwise a :exc:`TypeError` is raised.
+ A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, the
+ :class:`MIMEMessage` class is used to create MIME objects of main type
+ :mimetype:`message`. *_msg* is used as the payload, and must be an instance
+ of class :class:`~email.message.Message` (or a subclass thereof), otherwise
+ a :exc:`TypeError` is raised.
Optional *_subtype* sets the subtype of the message; it defaults to
:mimetype:`rfc822`.
@@ -171,10 +178,11 @@ Here are the classes:
Module: :mod:`email.mime.text`
- A subclass of :class:`MIMENonMultipart`, the :class:`MIMEText` class is used to
- create MIME objects of major type :mimetype:`text`. *_text* is the string for
- the payload. *_subtype* is the minor type and defaults to :mimetype:`plain`.
- *_charset* is the character set of the text and is passed as a parameter to the
- :class:`MIMENonMultipart` constructor; it defaults to ``us-ascii``. No guessing
- or encoding is performed on the text data.
+ A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, the
+ :class:`MIMEText` class is used to create MIME objects of major type
+ :mimetype:`text`. *_text* is the string for the payload. *_subtype* is the
+ minor type and defaults to :mimetype:`plain`. *_charset* is the character
+ set of the text and is passed as a parameter to the
+ :class:`~email.mime.nonmultipart.MIMENonMultipart` constructor; it defaults
+ to ``us-ascii``. No guessing or encoding is performed on the text data.
diff --git a/Doc/library/email.parser.rst b/Doc/library/email.parser.rst
index 43f0238..ec2e71b 100644
--- a/Doc/library/email.parser.rst
+++ b/Doc/library/email.parser.rst
@@ -6,18 +6,18 @@
Message object structures can be created in one of two ways: they can be created
-from whole cloth by instantiating :class:`Message` objects and stringing them
-together via :meth:`attach` and :meth:`set_payload` calls, or they can be
-created by parsing a flat text representation of the email message.
+from whole cloth by instantiating :class:`~email.message.Message` objects and
+stringing them together via :meth:`attach` and :meth:`set_payload` calls, or they
+can be created by parsing a flat text representation of the email message.
The :mod:`email` package provides a standard parser that understands most email
document structures, including MIME documents. You can pass the parser a string
-or a file object, and the parser will return to you the root :class:`Message`
-instance of the object structure. For simple, non-MIME messages the payload of
-this root object will likely be a string containing the text of the message.
-For MIME messages, the root object will return ``True`` from its
-:meth:`is_multipart` method, and the subparts can be accessed via the
-:meth:`get_payload` and :meth:`walk` methods.
+or a file object, and the parser will return to you the root
+:class:`~email.message.Message` instance of the object structure. For simple,
+non-MIME messages the payload of this root object will likely be a string
+containing the text of the message. For MIME messages, the root object will
+return ``True`` from its :meth:`is_multipart` method, and the subparts can be
+accessed via the :meth:`get_payload` and :meth:`walk` methods.
There are actually two parser interfaces available for use, the classic
:class:`Parser` API and the incremental :class:`FeedParser` API. The classic
@@ -31,8 +31,8 @@ incrementally, and only returns the root object when you close the parser [#]_.
Note that the parser can be extended in limited ways, and of course you can
implement your own parser completely from scratch. There is no magical
connection between the :mod:`email` package's bundled parser and the
-:class:`Message` class, so your custom parser can create message object trees
-any way it finds necessary.
+:class:`~email.message.Message` class, so your custom parser can create message
+object trees any way it finds necessary.
FeedParser API
@@ -101,8 +101,8 @@ class.
The constructor for the :class:`Parser` class takes an optional argument
*_class*. This must be a callable factory (such as a function or a class), and
it is used whenever a sub-message object needs to be created. It defaults to
- :class:`Message` (see :mod:`email.message`). The factory will be called without
- arguments.
+ :class:`~email.message.Message` (see :mod:`email.message`). The factory will
+ be called without arguments.
The optional *strict* flag is ignored.
@@ -179,7 +179,8 @@ Here are some notes on the parsing semantics:
* All :mimetype:`multipart` type messages will be parsed as a container message
object with a list of sub-message objects for their payload. The outer
container message will return ``True`` for :meth:`is_multipart` and their
- :meth:`get_payload` method will return the list of :class:`Message` subparts.
+ :meth:`get_payload` method will return the list of :class:`~email.message.Message`
+ subparts.
* Most messages with a content type of :mimetype:`message/\*` (e.g.
:mimetype:`message/delivery-status` and :mimetype:`message/rfc822`) will also be