Dovecot / Thunderbird推荐Exchange / Outlook迁移策略

我们将Postfix / Dovecot / Maildir安装程序中的〜60个用户邮箱移动到Exchange 2007中。我了解到Microsoft的Transporter Suite ,它将允许批量邮箱的IMAP到Exchange转换。 但是,如果有一个无法预料的问题,那么如何清理一个拙劣的过程还是值得关注的。 显然,试图为用户删除损坏的Exchange邮箱也会导致一个相当吓人的对话框,这意味着用户帐户也将被删除 ,而不仅仅是损坏的框本身。 虽然原始的电子邮件存储(Maildir格式)可用,但我们需要删除有问题的坏框,并重复此过程,所以此方法不是一个可行的选项。

在这一点上,我非常担心影响批量或批量式转换,而无需大量的人工干预。 我们正试图避免访问50多个桌面,并通过使用Outlook或Thunderbird作为“枢轴”代理手动移动电子邮件; 虽然这是百分之百的保证工作,这将需要数周或数月时间移动一个帐户超过250万条信息。

所以我已经开始研究开源和商业的其他工具和方法。

我尝试的第一个是OfflineIMAP ,事实certificate, 这对Exchange不友好 , 迁移过程的微妙影响导致Exchange的命名属性耗尽,因为每个移动的邮件都会生成一个唯一的标头。 一个修补程序可用于此,将唯一标题更改为一个具有唯一标识符的通用标题,避免耗尽问题。 然而,在应用补丁之后,仍然存在一些问题。 真的很遗憾,因为保持同步是很好的。

在商业方面,我以试用模式简要介绍了Transend Migrator 。 结果是不一样的,二进制文件看起来很less。 这并不令人鼓舞,特别是对于那些最终用户会很容易注意到的事情,尤其是那些可怕的错误。

还有其他的问题。 邮箱存储为Maildir,但是邮箱名称符合Thunderbird的预期(我们已经在TBird上工作了好几年)。 许多箱子名称不匹配(发送与发送物品,垃圾与删除物品等),并且需要在移植时有效地翻译。 是的,我们对最终用户非常感兴趣 – 成功的迁移将包括通知他们我们正在切换到Outlook,并为每个人提供一个30分钟的小class,然后是人们首次打开基于Exchange的新邮箱。

有人在某个地方肯定有东西可行

编辑:后续

用Ruby编写的落叶松脚本提供了最简单的解决scheme,尽pipe有一些注意事项。 以下是发生了什么的一个严重压缩的版本:

  1. 获取用户的用户名和密码。 转换后重置密码。
  2. 通过IMAP连接到用户的邮箱,并确保INBOX已订阅,并且所有邮件都被标记为已读。 在Exchange方面有一个问题,如果邮件未读并处于特定状态,可以防止邮件成功导入…
  3. 将后缀传输映射更改为指向交换服务器,这会导致所有新交付到达Exchange服务器而不是当前的电子邮件服务器。
  4. 使用larch命令移动电子邮件,省略用户的垃圾桶。 我们必须投降,因为有用户把垃圾转化为个人档案系统。
  5. 请注意任何没有转换的消息。 重新审查并尝试重新复制它们。 这只会移动较新的消息。
  6. 在MySQL中创build一条logging,指示Dovecot进入该用户的代理模式,并将logging指向Exchange服务器。 这允许现有的客户端连接,直到我们准备好设置他们的Outlook安装。
  7. 重新连接到用户的收件箱,然后检查是否复制了所有邮件。

最好的方法是使用imap!

你可以让每个用户通过在Outlook中给他两个帐户自己来移动这些消息。

我使用Debian软件包“uw-mailutils”和这个命令的一个单独的Linux机器,从Cyrus到Exchange 2003进行了一次迁移:

mailutil transfer -verbose {imap.xxx.org:143/imap/user=m_xxx}INBOX {exchange.xxxx.org:143/imap/[email protected]} INBOX

mailutil来自UW-IMAP项目。 每个Linux发行版都应该包含它。

当它失败(它没有),我只要进入交换账户,并删除“INBOX”

我在更大的系统上做了很多这样的迁移。 300+邮箱,我已经迁移到各个方向:快递 – >赛勒斯,交stream – >赛勒斯,信使 – >交换,赛勒斯 – >交stream…

我们select的工具称为imapsync; 一个开源的Perl脚本。 它使用实际的IMAP协议来处理迁移,从而减轻处理每个实现的底层细节(aildir格式,邮箱注释,如DONT(。)和斜杠(/)分隔符)的需要。

IMAPSYNC也是可重入安全的。 您可以在同一个帐户上多次运行它,它只会复制第一次没有复制的内容或任何可能已经到达的新电子邮件。

我们通常将所有的用户账户转储到一个BASH脚本中,最后执行这个脚本:

 ./imapsync --host1 mail.pozicom.net --user1 someone@domain --password1 mypassword \ --host2 localhost --user2 someone@domain --password2 mypassword 

其中host1是您从host2复制的位置,即您要复制到的位置。

你可以从这里得到IMAPSYNC: http ://freshmeat.net/projects/imapsync/

我之前使用“imapsync”程序将IMAP服务器迁移到Scalix(类似Exchange的系统)。 认为IMAP邮箱的rsync。

吉姆。

我们有一个巨大的邮件系统,并定期从其他邮件系统(通常是Notes或Groupwise)获取用户。 所有这些迁移的一个共同点就是数据迁移一直是一场灾难。 总是存在难以解决的问题,VIP问题最终得到优先处理,正常的用户群体受到影响。 迁移工具具有永远不会修复的错误,因为没有人执行Notes-> Exchange迁移两次!

我们正在寻找的未来战略是一个主要是绿地邮箱,用户识别电子邮件必须保留。 对于你来说很容易 – 保持鸽舍服务器运行6个月,设置指向旧的imap系统的Outlookconfiguration文件(我相信这是Outlook 2007脚本),让用户在自己的时间迁移。

你会发现,大多数人真的不需要他们说的需要,6个月后,任何合法的需要将数据移动到新系统将完成。

另一种select是使用邮件归档解决scheme。 由于诉讼,我们必须将所有电子邮件存档,并且通常您可以将来自旧系统的邮件“收录”为托pipe归档解决scheme。 查看Postini和Microsoft托pipe服务。

使用Transporter Suite。 这是专门为此写的。

基本上,您导入IMAP用户和密码的CSV文件,并将正确导入数据。 如果您害怕执行批处理,则还可以一次导入一个用户。 实际上很难弄到一个import。

不要使用imapsync或任何其他IMAP到基于IMAP的同步引擎。 它的工作,但大部分的元数据将被搞砸 – 特别是date。 即使使用–syncinternaldates选项,Exchange仍然会将date覆盖到当前date,并且您将有一个错误的迁移。