12.2.2.1 Parser class API

class Parser([_class])
The constructor for the Parser class takes a single 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 other public Parser methods are:

parse(fp)
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 preceeded by a Unix-From 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).

parsestr(text)
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().

Since creating a message object tree 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])
Return a message object tree from a string. This is exactly equivalent to Parser().parsestr(s). Optional _class is interpreted as with the Parser class constructor.

message_from_file(fp[, _class])
Return a message object tree from an open file object. This is exactly equivalent to Parser().parse(fp). Optional _class is interpreted as with the Parser class constructor.

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.