Here are some notes on the parsing semantics:
- Most non-multipart type messages are parsed as a single
message object with a string payload. These objects will return
False
for is_multipart(). Their
get_payload() method will return a string object.
- All 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 is_multipart() and their
get_payload() method will return the list of
Message subparts.
- Most messages with a content type of message/*
(e.g. message/delivery-status and
message/rfc822) will also be parsed as container
object containing a list payload of length 1. Their
is_multipart() method will return
True
. The
single element in the list payload will be a sub-message object.
- Some non-standards compliant messages may not be internally consistent
about their multipart-edness. Such messages may have a
header of type multipart, but their
is_multipart() method may return
False
. If such
messages were parsed with the FeedParser, they will have an
instance of the MultipartInvariantViolationDefect class in their
defects attribute list. See email.Errors for
details.
Release 3.0, documentation updated on November 29, 2004.