The constructor for the 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 Message (see
email.Message). The factory will be called without
arguments.
The optional strict flag specifies whether strict or lax parsing
should be performed. Normally, when things like MIME terminating
boundaries are missing, or when messages contain other formatting
problems, the Parser will raise a
MessageParseError. However, when lax parsing is enabled,
the Parser will attempt to work around such broken formatting
to produce a usable message structure (this doesn't mean
MessageParseErrors are never raised; some ill-formatted
messages just can't be parsed). The strict flag defaults to
False since lax parsing usually provides the most convenient
behavior.
Changed in version 2.2.2:
The strict flag was added.
The other public Parser methods are:
parse(
fp[, headersonly])
Read all the data from the file-like object fp, parse the
resulting text, and return the root message object. fp must
support both the readline() and the read() methods
on file-like objects.
The text contained in fp must be formatted as a block of RFC 2822
style headers and header continuation lines, optionally preceded by a
envelope header. The header block is terminated either by the
end of the data or by a blank line. Following the header block is the
body of the message (which may contain MIME-encoded subparts).
Optional headersonly is as with the parse() method.
Changed in version 2.2.2:
The headersonly flag was added.
parsestr(
text[, headersonly])
Similar to the parse() method, except it takes a string
object instead of a file-like object. Calling this method on a string
is exactly equivalent to wrapping text in a StringIO
instance first and calling parse().
Optional headersonly is a flag specifying whether to stop
parsing after reading the headers or not. The default is False,
meaning it parses the entire contents of the file.
Changed in version 2.2.2:
The headersonly flag was added.
Since creating a message object structure from a string or a file
object is such a common task, two functions are provided as a
convenience. They are available in the top-level email
package namespace.
message_from_string(
s[, _class[, strict]])
Return a message object structure from a string. This is exactly
equivalent to Parser().parsestr(s). Optional _class and
strict are interpreted as with the Parser class constructor.
Changed in version 2.2.2:
The strict flag was added.
message_from_file(
fp[, _class[, strict]])
Return a message object structure tree from an open file object. This
is exactly equivalent to Parser().parse(fp). Optional
_class and strict are interpreted as with the
Parser class constructor.
Changed in version 2.2.2:
The strict flag was added.
Here's an example of how you might use this at an interactive Python
prompt: