在Python中提取仅电子邮件头部

18 投票
1 回答
30187 浏览
提问于 2025-04-17 07:56

我在用Python提取所有邮件头的时候遇到了一些问题。我知道怎么获取我想要的那些邮件头,但我想保存所有的邮件头,不太确定该怎么做。

我已经把邮件加载到一个邮件对象里了。

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

所以我可以获取到

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

但是我想要所有的邮件头。

1 个回答

28

可以使用HeaderParser来处理这个问题:

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

print h.keys()

我刚注意到你编辑了你的问题。其实你可以直接从你原来的内容中获取相同的信息,而不需要使用HeaderParser。比如说,headers.items() 会返回一个包含两个元素的元组列表,这些元组里有头部信息和对应的值。

撰写回答