使用python IMAP下载附件

时间:2017-05-16 09:46:43

标签: python email imap imaplib

我有一个工作的工具,通过电子邮件发送给我一个包含原始数据的文件,我可以进入我的电子邮件并轻松下载它们,但是当我有多个文件(它作为多个电子邮件发送)时,它会变得有点单调乏味。

我正在使用pythonimaplib登录我的电子邮件帐户,在过去一天内搜索来自已知电子邮件地址的电子邮件,然后将所有附件下载到目录。所以我认为脚本可能对此有所帮助。

我已经设置了一个gmail帐户并更改了设置,以便我可以使用来自shell的imap进行连接,但是我已经迷失了从哪里开始。

有人能指出我正确的方向,我需要做些什么来实现这一目标。

1 个答案:

答案 0 :(得分:0)

这是一个分离出imaplib的存储库(与Python3.6兼容,没有测试其他版本)

https://github.com/christianwengert/mail

以下代码段会检查所有未见过的消息,然后返回其附件:

server = IMAPClient(imap, use_uid=True, ssl=993)
server.login(username, password)
server.select_folder('INBOX')
message_ids = server.search([b'NOT', b'SEEN']) # UNSEEN
messages = server.fetch(message_ids, data=['ENVELOPE', 'BODYSTRUCTURE',  'RFC822.SIZE'])

for mid, content in messages.items():
    bodystructure = content[b'BODYSTRUCTURE']
    text, attachments = walk_parts(bodystructure, msgid=mid, server=server)

HTH