Parsing Email Headers

T misceverything at
Thu Mar 11 20:29:53 CET 2010

All I'm looking to do is to download messages from a POP account and
retrieve the sender and subject from their headers.  Right now I'm 95%
of the way there, except I can't seem to figure out how to *just* get
the headers.  Problem is, certain email clients also include headers
in the message body (i.e. if you're replying to a message), and these
are all picked up as additional senders/subjects.  So, I want to avoid
processing anything from the message body.

Here's a sample of what I have:

                # For each line in message
                for j in M.retr(i+1)[1]:
                    # Create email message object from returned string
                    emailMessage = email.message_from_string(j)
                    # Get fields
                    fields = emailMessage.keys()
                    # If email contains "From" field
                    if emailMessage.has_key("From"):
                        # Get contents of From field
                        from_field = emailMessage.__getitem__("From")

I also tried using the following, but got the same results:
                 emailMessage =
email.Parser.HeaderParser().parsestr(j, headersonly=True)

Any help would be appreciated!

More information about the Python-list mailing list