The Parser class, imported from the email.parser module, provides an API that can be used to parse a message when the complete contents of the message are available in a string or file. The email.parser module also provides a second class, called HeaderParser which can be used if you're only interested in the headers of the message. HeaderParser can be much faster in these situations, since it does not attempt to parse the message body, instead setting the payload to the raw body as a string. HeaderParser has the same API as the Parser class.
[_class]) |
The optional strict flag is ignored.
Changed in version 2.2.2: The strict flag was added. Changed in version 2.4: The strict flag was deprecated.
The other public Parser methods are:
fp[, headersonly]) |
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.
text[, headersonly]) |
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.
s[, _class[, strict]]) |
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.
fp[, _class[, strict]]) |
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:
>>> import email >>> msg = email.message_from_string(myString)
See About this document... for information on suggesting changes.