邮件迁移:将邮件转入 IMAP 账户

邮件迁移:将邮件转入 IMAP 账户

我在将我们公司的电子邮件系统从旧提供商迁移到新提供商时遇到了麻烦,新提供商称之为 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?

非常感谢任何建议。

答案1

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

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

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

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

此外,尽管您可以编写宏来一次传输几个文件,但我并不确定 Pine 或 MUTT 是否能够帮助您按照所述方式完成此操作。


更新

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

getmail_maildir ~/Maildir/ < email_file.eml

getmail_maildir是该方案的一部分getmail。这仅有的如果您可以直接访问邮件文件夹,则可以使用,尽管对于更好的主机来说,这通常是正确的。不太确定是否可以用其他邮件存储格式执行此操作,mbox但我认为getmail也有一个getmail_mbox命令。此外,Windows 应用程序“IMAP尺寸“有一个从 EML 转换为 mbox 的命令。

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

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

相关内容