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



好的,所以我正在使用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???<-------])’)

请帮忙!

您需要解析消息的BODYSTRUCTURE,以确定有问题的附件的部分编号。

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

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

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

请注意,在本例中,部分id为"2.1"。

最新更新