web-dev-qa-db-ja.com

IMAP / POP3サーバーからDovecotへの移行

異なるサーバーにある2つのメールボックスを同期しようとしています。これは、移行プロセスが原因です。古いサーバーは宅配便サーバーであり、IMAP経由でアクセスする必要がありますが、新しいサーバーは鳩小屋サーバーです。 元のDovecotドキュメント に従おうとしています。残念ながら、宛先サーバーでdoveadmスクリプトを実行するときに、ソースIMAPの構成を設定する必要がある場所は指定されていません。ドキュメントには設定が記載されていますが、設定を入力する必要のあるDovecot構成ファイルについては記載されていません。

3
lefterav

2つのメールサーバーがIMAPプロトコルで問題なく実行されている場合は、imapsyncを使用して作業を行います。 CourierとDovecotはどちらもimapsyncでサポートされています。

さまざまなフォルダー同期用の正規表現マッピングなど、多くの機能を使用してサポートするのは非常に簡単です。

ソフトウェアはFOSSであり、ここで見つけることができます: http://imapsync.lamiral.info

UID同期が必要な場合は、imapsyncにオプション--useuidを追加できます。この種のUIDについて話しているのかどうかはわかりません。しかし、これはあなたが探しているべきオプションです:

--useuid:メッセージを認識するための基準としてヘッダーの代わりにuidを使用します。 --nousecacheが使用されていない限り、オプション--usecacheが暗黙指定されます。

4

構成ファイルを使用せずに、コマンドラインで次の操作を実行することもできます。

# 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ファイルを調べて、コマンド(およびパスワード)を表示できるユーザーがボックスにいる場合、これは非常に安全ではありません。注意してください。

2
random dent

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は詳細なデバッグモードです。

1
Steve Shipway

これらの設定をDovecot構成に含める必要があります。通常、Dovecot構成は/etc/dovecot/にあります。

構成を/etc/dovecot/conf.d/90-migration.confに配置するのが最善です(conf.dディレクトリ内のすべてのファイルが自動的に含まれます)。

構成を再ロードするには、以下を実行する必要があります。

Sudo doveadm reload
1
takeshin