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

标签 python email imap

好的,我正在使用 imap 库来下载消息。我不想下载整个邮件,只想查看附件。例如,当邮件被接收并作为整体下载时,将显示以下 .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”。

关于python - 电子邮件消息 python 抓取消息的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11488735/

相关文章:

python - 维基数据 API wbsearchentities : why are results not the same in Python than in Wikidata?

php - Cronjob 运行后从 MYSQL 向收件人发送电子邮件

javamail-1.4.5 解析通过 imap 收到的 gmail 消息时出错

python - 在python中解码这种类型的字符串

Python imap 库

python - 如何从 docker 容器写入主机安装的文件夹

python - pandas 绘制一个特定的列作为 x 轴和 y 轴?

python - pandas数据框各个字段中列表的拆分列表

ios - 将 Swift 文件添加到应用程序的资源包时遇到问题

Java Email 在本地处理 spring 应用程序,但不在已部署的 Heroku 应用程序上工作