在python中只提取电子邮件标题

时间:2011-12-07 23:45:11

标签: python email header

我在尝试提取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

1 个答案:

答案 0 :(得分:15)

或许使用HeaderParser

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

print h.keys()

我刚注意到你编辑了你的问题。实际上,您可以从不使用HeaderParser的方式获得相同的信息。例如headers.items() will return包含标题和相应值的2元组列表。