从任何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 = %u@company.com imapc_password = mypassword imapc_features = rfc822.size fetch-headers imapc_port = 143 pop3c_host = pop3host.company.com pop3c_user = %u@company.com 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