如何使用imaplib获取电子邮件主题和发件人?
我在执行下面代码后,得到了以下的回复。请问我该如何解析这个回复,以获取发件人(约翰·史密斯)和主题(测试)呢?
[('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 个回答
4
你可以试试这个方法来获取所有邮件的头部信息。
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' 是你想要的邮件主题的 uid 列表。
8
也许这个问题/答案 这里 会对你有帮助。你可以试试下面这样的代码:
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
应该会变成一个字典。