Extract just email headers in python

Question:

I’m having some issues trying to extract all the email headers in python. I know how to get the ones I’m looking for but I want to save all the headers and I’m not sure how to do that.

I have it loaded into a email object

import email
f = open(kwargs['opt_emailfile'])
msg = email.message_from_file(f)
f.close()

So I can get

msg['To']
msg['From']

But I want all the headers

Asked By: Mike

||

Answers:

Using HeaderParser perhaps:

from email.parser import HeaderParser
parser = HeaderParser()
h = parser.parsestr(email)

print h.keys()

I just noticed you edited your question. You can actually get the same information from what you had without using HeaderParser. e.g. headers.items() will return list of 2-tuples with headers and corresponding values.

Answered By: jan zegan
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.