我在尝试提取python中的所有电子邮件标题时遇到了一些问题。我知道如何获得我正在寻找的那些,但我想保存所有的标题,我不知道该怎么做。
我已将其加载到电子邮件对象
import email
f = open(kwargs['opt_emailfile'])
msg = email.message_from_file(f)
f.close()
所以我可以得到
msg['To']
msg['From']
但我想要所有标题
解决方案
这是我在答案中所做的事情
f = open(kwargs['opt_emailfile'])
msg = email.message_from_file(f)
f.close()
parser = email.parser.HeaderParser()
headers = parser.parsestr(msg.as_string())
for h in headers.items():
print h
答案 0 :(得分:15)
或许使用HeaderParser:
from email.parser import HeaderParser
parser = HeaderParser()
h = parser.parsestr(email)
print h.keys()
我刚注意到你编辑了你的问题。实际上,您可以从不使用HeaderParser的方式获得相同的信息。例如headers.items()
will return包含标题和相应值的2元组列表。