異なるサーバーにある2つのメールボックスを同期しようとしています。これは、移行プロセスが原因です。古いサーバーは宅配便サーバーであり、IMAP経由でアクセスする必要がありますが、新しいサーバーは鳩小屋サーバーです。 元のDovecotドキュメント に従おうとしています。残念ながら、宛先サーバーでdoveadm
スクリプトを実行するときに、ソースIMAPの構成を設定する必要がある場所は指定されていません。ドキュメントには設定が記載されていますが、設定を入力する必要のあるDovecot構成ファイルについては記載されていません。
2つのメールサーバーがIMAPプロトコルで問題なく実行されている場合は、imapsync
を使用して作業を行います。 CourierとDovecotはどちらもimapsync
でサポートされています。
さまざまなフォルダー同期用の正規表現マッピングなど、多くの機能を使用してサポートするのは非常に簡単です。
ソフトウェアはFOSSであり、ここで見つけることができます: http://imapsync.lamiral.info
UID同期が必要な場合は、imapsyncにオプション--useuid
を追加できます。この種のUIDについて話しているのかどうかはわかりません。しかし、これはあなたが探しているべきオプションです:
--useuid:メッセージを認識するための基準としてヘッダーの代わりにuidを使用します。 --nousecacheが使用されていない限り、オプション--usecacheが暗黙指定されます。
構成ファイルを使用せずに、コマンドラインで次の操作を実行することもできます。
# doveadm -Dv \
-o imapc_Host=<SOURCE_Host> \
-o imapc_user=<SOURCE_USERNAME> \
-o imapc_password=<SOURCE_PASSWORD> \
-o imapc_features=rfc822.size \
-o imapc_ssl=starttls \
-o mail_fsync=never \
backup -R -u <DESTINATION_MAILBOX> imapc:
ソースIMAPはポート143でのみSTARTTLSをサポートしているため、大きな問題が発生しました。-o imapc_ssl=starttls
私の場合は命の恩人でした。
最初のバックアップ後に、次の方法で同期を行うことができます。
# doveadm -Dv \
-o imapc_Host=<SOURCE_Host> \
-o imapc_user=<SOURCE_USERNAME> \
-o imapc_password=<SOURCE_PASSWORD> \
-o imapc_features=rfc822.size \
-o imapc_ssl=starttls \
-o mail_fsync=never \
sync -1 -R -u <DESTINATION_MAILBOX> imapc:
もちろん、who
を使用して、または.bash_historyファイルを調べて、コマンド(およびパスワード)を表示できるユーザーがボックスにいる場合、これは非常に安全ではありません。注意してください。
Dovecotのdsync
ユーティリティを使用してメールを移行する必要があります。これにより、UIDが保持され、必要に応じてPOP3UIDLも保持されます。
backup -R
オプションを使用してdsync
を実行し、リモートIMAPサーバーからローカルDovecotサーバーに「バックアップを逆にします」。次のような特別な構成ファイルを作成する必要があります。
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
username
は、%u
ファイルのconfig.cfg
を置き換えます。 -D -v
は詳細なデバッグモードです。
これらの設定をDovecot構成に含める必要があります。通常、Dovecot構成は/etc/dovecot/
にあります。
構成を/etc/dovecot/conf.d/90-migration.conf
に配置するのが最善です(conf.d
ディレクトリ内のすべてのファイルが自動的に含まれます)。
構成を再ロードするには、以下を実行する必要があります。
Sudo doveadm reload