walk()
The walk()
method is an all-purpose generator which can be used to iterate over all the parts and subparts of a message object tree, in depth-first traversal order. You will typically use walk()
as the iterator in a for
loop; each iteration returns the next subpart.
Here’s an example that prints the MIME type of every part of a multipart message structure:
>>> for part in msg.walk(): ... print(part.get_content_type()) multipart/report text/plain message/delivery-status text/plain text/plain message/rfc822 text/plain
walk
iterates over the subparts of any part where is_multipart()
returns True
, even though msg.get_content_maintype() == 'multipart'
may return False
. We can see this in our example by making use of the _structure
debug helper function:
>>> for part in msg.walk(): ... print(part.get_content_maintype() == 'multipart', ... part.is_multipart()) True True False False False True False False False False False True False False >>> _structure(msg) multipart/report text/plain message/delivery-status text/plain text/plain message/rfc822 text/plain
Here the message
parts are not multiparts
, but they do contain subparts. is_multipart()
returns True
and walk
descends into the subparts.
Please login to continue.