使用imaplib获取电子邮件主题和发件人?

时间:2011-06-02 01:52:53

标签: python imap imaplib

执行响应下面显示的代码后,我收到以下响应。如何通过此响应来解析发送者(John Smith)和主题(测试)?

[('13010 (BODY[HEADER.FIELDS (SUBJECT FROM)] {57}', 'From: John Smith <jsmith@gmail.com>\r\nSubject: test\r\n\r\n'), ')']

-

conn.fetch(message, '(BODY[HEADER.FIELDS (SUBJECT FROM)])')

2 个答案:

答案 0 :(得分:7)

也许问题/答案here会有所帮助。尝试这样的事情:

from email.parser import HeaderParser
data = conn.fetch(message, '(BODY[HEADER.FIELDS (SUBJECT FROM)])')
header_data = data[1][0][1]
parser = HeaderParser()
msg = parser.parsestr(header_data)

然后msg应该是字典。

答案 1 :(得分:3)

您可以尝试此操作来获取所有邮件的标题信息。

import imaplib
import email

obj = imaplib.IMAP4_SSL('imap.gmail.com', 993)
obj.login('username', 'password')
obj.select('folder_name')
resp, data = obj.uid('FETCH', ','.join(map(str,uidl_list)) , '(BODY.PEEK[HEADER.FIELDS (From Subject)] RFC822.SIZE)')

注意:此处'uidl_list'是您想要的主题邮件的列表。