从任何IMAP / POP3服务器迁移到Dovecot

我正在尝试同步驻留在不同服务器中的两个邮箱。 这是由于迁移过程。 旧服务器是一个快递服务器,需要通过IMAP访问,而新的服务器是一个鸽舍服务器。 我正在尝试遵循原来的鸽子文件 。 不幸的是,在目标服务器上运行doveadm脚本时,没有指定需要设置源IMAPconfiguration的位置。 文档提供了设置,但没有提及哪个dovecotconfiguration文件必须input设置。

如果两个邮件服务器运行没有IMAP协议的问题,我会使用imapsync来完成这项工作。 Courier和Dovecot都支持imapsync

使用和支持许多function非常简单,例如用于不同文件夹同步的正则expression式映射。

该软件是源码,可以在这里find: http : //imapsync.lamiral.info

如果您需要UID同步,您可以在--useuid中添加选项–useuid。 我不确定你是否在谈论这种UID。 但这是您应该寻找的选项:

–useuid:使用uid而不是标题作为识别消息的标准。 选项–usecache是​​隐含的,除非使用–nousecache。

您应该使用Dovecot的dsync实用程序来迁移您的邮件。 这将保留UID,甚至在必要时保留POP3 UIDL。

使用backup -R选项运行dsync ,从远程IMAP服务器“反向备份”到本地Dovecot服务器。 您需要创build一个特殊的configuration文件,如下所示:

 imapc_host = imap.company.com imapc_user = %[email protected] imapc_password = mypassword imapc_features = rfc822.size fetch-headers imapc_port = 143 pop3c_host = pop3host.company.com pop3c_user = %[email protected] pop3c_password = mypassword pop3c_port = 110 namespace pop3c { prefix = POP3-MIGRATION-NS/ location = pop3c:~/pop3c list = no hidden = yes } !include /etc/dovecot/dovecot.conf plugin { pop3_migration_mailbox = POP3-MIGRATION-NS/INBOX pop3_migration_skip_size_check = yes pop3_migration_ignore_missing_uidls=yes } mail_prefetch_count = 20 mail_shared_explicit_inbox = no protocol doveadm { mail_plugins = $mail_plugins pop3_migration } 

注意这是针对单个用户的; 如果您使用主用户/密码,或者需要SSL进行连接,则可能希望具有不同的选项。

然后用类似下面的命令调用它: dsync -D -v -u username -c configfile.cfg

usernamereplaceconfig.cfg文件中的%u-D -v是详细的debugging模式。

您需要将这些设置包含在Dovecotconfiguration中,通常Dovecotconfiguration位于/etc/dovecot/

最好将configuration放在/etc/dovecot/conf.d/90-migration.conf目录中的所有文件都会自动包含)。

要重新加载configuration,你需要运行:

 sudo doveadm reload