2017-01-08 37 views
0

我正在寻找打印单个电子邮件的主题,该电子邮件的UID已使用Python 2.7 imap库。这很简单,我是Python的新手,并且在使用库时遇到问题。如何使用uid打印单个电子邮件的主题

这是我有:

# Retrieve and store ID & UID for most recent email received 

result, data = mail.search(None,'ALL') # search and return sequential ids 
latest_id = data[0].split()[-1] 

result, data = mail.uid('search', None, "ALL") # search and return uids instead 
latest_uid = data[0].split()[-1] 

现在我只是希望打印由latest_uid标识的电子邮件的主题。

感谢您的帮助!

回答

1

我想要获得主题的方法是使用RFC 822(电子邮件消息标准格式)获取整个消息数据,然后使用电子邮件模块将其转换为python电子邮件对象。

使用RFC 822将获取整个消息,但如果您只需要该主题,您只需获取标题(注释如下)。如果您决定仅获取标题,则只需解析以Subject:开头的行。

imaplib文档https://pymotw.com/2/imaplib/深入了解下面代码中发生的事情。

import email, imaplib 

# typ, msg_data = c.fetch('1', '(BODY.PEEK[HEADER])') 
t, d = mail.fetch(latest_uid, '(RFC822)') 


for res_part in d: 
    if isinstance(res_part, tuple): 
    msg = email.message_from_string(res_part[1]) 
    subject = msg['subject'] 
+0

太棒了!完美的作品。谢谢! – McFizz

相关问题