通过 IMAP 将 .eml 文件上传到 Gmail

通过 IMAP 将 .eml 文件上传到 Gmail

我有一堆 eml 文件目录,我想使用 IMAP 将它们上传到 gmail。我过去曾使用 IMAPSync 同步两个 IMAP 帐户,但这些消息只是作为 eml 文件保存在文件系统中,它们不在现有的 IMAP 帐户中,我无法同步它们。eml 文件均通过消息 ID 命名。我想保留所有消息属性和消息附件,以便当它们在 gmail 中时,我可以搜索它们并将它们视为完整的消息。文件结构如下。

2015mailarchives
├── 010115.xyz.archive
│   ├── account.manager
│   │   └── in
│   │       ├── 65199001.eml
│   │       ├── 65754836.eml
│   │       ├── 65860605.eml
│   │       ├── 65867970.eml
│   │       ├── 65990249.eml
│   │       ├── 65998348.eml
│   │       ├── 66004688.eml
│   │       ├── 66022610.eml
│   │       ├── 66107473.eml
│   │       ├── 66254739.eml
│   │       ├── 66293987.eml
│   │       ├── 66304813.eml
│   │       └── 66317500.eml
│   ├── adam.beck
│   │   ├── in
│   │   │   ├── 64633604.msg.eml
│   │   │   ├── 64634191.msg.eml
│   │   │   ├── 64635386.msg.eml
│   │   │   ├── 64635388.msg.eml

我其实不必维护文件结构。我要做的唯一一件事就是创建可以在 Gmail 上快速搜索的邮件备份。

关于如何完成这样的任务有什么想法吗?这些文件位于无头 Linux 机器上,因此我希望使用 bash、perl、python 等。

答案1

许多“邮箱同步”工具还支持 Maildir 和/或 MH 存储格式以及 IMAP。方便的是,它们都由简单的目录组成,每个消息一个文件:

  • 要将目录转换为 Maildir 文件夹(几乎所有程序都支持),首先创建子目录curnewtmp,然后将所有消息文件移动到 下new/

  • 或者,如果程序需要 MH 格式,请用数字重命名所有消息(1,,2... 3- 没有扩展名或任何内容)并创建一个空白.mh_sequences文件。

现在目录是一个有效的 Maildir 文件夹,您可以使用 OfflineIMAP 或 imapsync 将其内容传输到其他地方。或者运行mutt -f account.manager/以在 Mutt 中将该目录作为邮件文件夹打开;使用Shift+T . Enter选择所有邮件,然后将其复制到 IMAP 服务器。Shift+C imaps://[email protected] Enter

笔记:这假设这些 .eml 文件中的消息为标准 RFC 822 格式 - 它不适用于 Outlook 的二进制 .eml 格式。

另外,要小心Google Apps 的带宽限制– 您每月最多可以上传 500 MB。

相关内容