电子邮件消息python抓取消息的一部分

时间:2012-07-15 01:39:06

标签: python email imap

好的,我正在使用imap lib下载邮件。我不想下载整个邮件只看附件。例如,当收到邮件并作为整体下载时,会显示以下.txt附件:

------=_Part_1476882_26131288.1342315902872--
------=_Part_1476883_28164997.1342315902872--
Content-Type: application/octet-stream; 
name=textplain_2.txt
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename=textplain_2.txt
Bhh
------=_Part_1476883_28164997.1342315902872--

上述消息中的Bhh是文本文件的内容。有没有办法下载附件?我在http://www.devshed.com/c/a/Python/Python-Email-Libraries-part-2-IMAP/3/上看到了一个关于此问题的教程,但我不确定如何下载或获取所附文本文件的内容......

他们建议做点像......

r, data = server.fetch(‘6’, ‘(UID BODY[TEXT])’)
r, data = server.fetch(‘6’, ‘(UID ENVELOPE)’)
r, data = server.fetch(‘2:5’, ‘(BODY[HEADER.FIELDS (SUBJECT FROM)])

我认为这将是:

server.fetch(‘6’, ‘(UID BODY[ATTACHMENT???<-------])’)

请帮忙!

1 个答案:

答案 0 :(得分:1)

您需要解析邮件的BODYSTRUCTURE,以确定相关附件的部分编号是什么。

server.fetch(‘6’, ‘(UID BODYSTRUCTURE)’)

然后您需要实际获取您要查找的附件,查询将如下所示:

server.fetch('6', '(BODY[2.1])')

请注意,此示例中的section part id为“2.1”。