使用 Python 从邮​​箱中恢复电子邮件列表

Recover email list from a mailbox using Python

是否有任何可能性或任何库可以登录给定邮件并恢复给定发件人的邮件列表? 我的意思是我提供一个电子邮件地址的情况,基于这个地址,收件箱中的所有消息都被过滤,并且返回到电子邮件列表或用户的最后一条消息。 我使用 flask-mail 发送电子邮件,但我认为无法恢复邮件列表。

您应该检查标准 mailbox 库。它提供了读取使用最流行的邮箱文件格式(在撰写本文时为 Maildir、mbox、MH、Babyl 和 MMDF)存储在磁盘上的邮箱的功能。

请注意,如今,出于性能原因,许多邮件客户端正在使用嵌入式数据库引擎来存储电子邮件。 SQLite 是流行的选择,您也可以尝试 sqlite3 库。

最后,您还会发现像 Mork 这样的奇特文件格式。为此,您将不得不编写自己的解析器或转向 PyPy 来搜索是否有人已经为您完成了工作。

作为个人注意事项,如果您的电子邮件客户端允许更改其存储后端,您可以考虑为您的电子邮件切换到众所周知的基于文本的存储格式——这在发生灾难时绝对有帮助恢复


例如,我正在使用 Thunderbird 并将其设置为使用 mbox 文件格式。所以我可以这样遍历我的垃圾文件夹中的消息:

>>> path = '~/.thunderbird/4tuag540.default/ImapMail/ssl0.ovh-1.net/INBOX.sbd/Junk'
>>> from mailbox import mbox
>>> junk = mbox(path)
>>> for message in junk:
...    # Prinf the "From" header:
...    print(message['From'])
...