邮件迁移:将邮件泵入 IMAP 帐户

Pao*_*olo 3 linux email thunderbird imap migration

我在将我们公司的电子邮件系统从旧提供商迁移到新提供商时遇到了麻烦,称之为 FOO。

我已经通过控制面板在 FOO 上创建了电子邮件地址和邮箱来复制现有结构。为了检查一切是否正常,我在每个带有 FOO smtp 和 imap 数据的电子邮件客户端上添加并配置了一个新帐户,并进行了简单的发送和接收。到目前为止一切顺利,客户端发送和接收邮件没有任何问题。

问题是 FOO 上的新邮箱是空的,我需要用现有邮件填充它们。

我所拥有的:对于我本地用户的每个客户端,我都有一堆 .eml 文件组织在文件夹中(收件箱、已发送项目等)。每个 .eml 都是一封邮件。

我想要什么:对于每个帐户,我想将这些 .eml 文件导入 FOO 邮箱,以便我可以使用 FOO imap 服务器/用户名/密码配置客户端,并且用户可以再次使用他们的邮件。

最初我是这样做的:在我个人的本地 Thunderbird 安装中,我为每个要迁移的用户帐户创建了一个帐户。我将(通过 ImportExportTools TB 扩展).eml 文件导入到新创建的帐户中。Thunderbird 在本地客户端和 WF 上的 imap 服务器之间自动同步邮件。

如果它可以工作那就太好了……但过了一段时间任务失败了。有时是超时,有时是网络问题等等......基本上这个过程由于某种原因停止,我无法将所有邮件发送到远程服务器。

我必须迁移大量邮件(每个用户平均 5/6 Gb)。

我的解决方案:

  1. 为每个要迁移的现有客户端创建一个包含相应 .eml 文件的 zip。
  2. 将每个 zip 上传到我的 FOO 帐户(使用 scp 或 ftp,我必须考虑一下)
  3. 在我的 FOO 帐户中安装命令行邮件客户端(pine?mutt?其他?!哪个?)
  4. 为每个要迁移的帐户创建一个邮件帐户
  5. 将 .eml 导入客户端并希望 IMAP 同步发生

对我来说,这似乎相当复杂,我什至不确定它是否可行。你有更好的解决方案吗?哪个客户端支持eml导入和IMAP?

任何建议都非常感谢。

Jul*_*ght 7

如果您仍然可以访问原始服务,目前最好的方法是使用该工具ìmapsync(或OfflineIMAP作为替代)。

这将允许您暂时从旧服务同步到新服务。它还将保留所有标志,以便保留未读标记。它还将保留任何文件夹结构。

第二种最常见的实现方式需要仔细协调邮件路由。这将是源数据的文件副本,通常采用 maildir 或 mbox 格式。这可能还需要来自以前的邮件提供商的帮助,除非您具有对旧服务的 shell 访问权限。

imapsync当然是首选方法。不建议尝试使用 eml 文件进行传输。首先,您将丢失所有标志和文件夹。此外,尝试为每个用户 5-6GB 执行此操作将需要很长时间。您必须分阶段进行。

此外,我不确定 Pine 或 MUTT 是否会按照您概述的方式帮助完成它,尽管您可以编写宏来一次传输几个文件。


更新

正如我们现在所知,不可能从原始同步。将 EML 文件的输入脚本化到maildir基于系统的最佳方法(如果这是您拥有的,它是 Linux IMAP 服务器最常见的存储格式)是使用

getmail_maildir ~/Maildir/ < email_file.eml
Run Code Online (Sandbox Code Playgroud)

getmail_maildirgetmail包的一部分。这在您可以直接访问邮件文件夹时才有效,尽管对于更好的主机来说这通常是正确的。不太确定使用其他邮件存储格式执行此操作,mbox但我认为这getmail也有一个getmail_mbox命令。此外,Windows 应用程序“ IMAPSize ”具有用于从 EML 转换为 mbox 的命令。

同样,将电子邮件迁移到物理邮件存储比尝试通过 IMAP 传递所有内容要容易得多。但是,您可能必须这样做,因为新的提供商无法提供合适的访问权限(例如,如果迁移到 GMail,就会出现这种情况)。

如果是这种情况,最好的方法是使用“合成”本地邮件目录将 EML 文件迁移到邮件目录格式(除了命名约定外,邮件目录没有什么特别之处,因此您实际上不需要使用 IMAP 服务器他们)和getmail_maildir。然后使用 IMAPSync 或 OfflineIMAP 从该本地 maildir 推送到新服务。这样你就不需要去尝试编写 MUTT 脚本了。