在本地存储电子邮件(imaplib、libpst)

Store email locally (imaplib, libpst)

我正在使用 imaplib 为多个帐户(Gmail、Yahoo..)获取电子邮件。 在本地存储电子邮件(包括附件)的最佳方式是什么。

有什么方法可以 pickle 并将电子邮件存储为文件吗? 是否可以将电子邮件存储为字节并检索它们 稍后作为邮件对象?

我会尝试将邮件保存在单独的文件夹中,每个字段都在 JSON 文件中 和附件作为单独的文件,但我想知道是否有 native 这样做的方式。

已经有几种既定的方式来存储邮箱(即电子邮件列表)。流行的例子是 Maildir and mbox.

Python 包含可以处理它们的 mailbox 模块:

Supported mailbox formats are Maildir, mbox, MH, Babyl, and MMDF.

您当然可以推出自己的解决方案,将它们腌制或转储为 JSON 到文件中,但是如果您使用其中一种常见格式,您将获得与其他程序的兼容性(importing them into Thunderbird,例如)。