我有一堆 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 文件夹(几乎所有程序都支持),首先创建子目录
cur
、new
、tmp
,然后将所有消息文件移动到 下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。