web-dev-qa-db-ja.com

古いpostfix / dovecotメールサーバーに移行する

簡単に言うと:あるdovecotから別のdovecotにmaildirデータを移行するためのステップバイステップガイドを知っている人はいますか?

まとめると:メールサーバーを新しいマシンに移行しようとしています。

私は最初に単一のmaildirディレクトリを単純にtar&rsyncしようとしましたが、 Thunderbirdではすべてのサブフォルダがグレー表示されていました

だから私はdoveadm syncでもう一度やろうと思ったのですが、今は dovecot manual 、googleまたはserverfaultでそれを行う方法を明確に見つけることができません。

実際にこれを行うための簡単な段階的なガイドはまだありませんか?それとも簡単すぎて理解できませんか?マニュアルには、私のようなメールサーバーnoobに関する十分な説明が含まれていません。

  1. doveadm同期/バックアップ

doveadm backup -u [email protected] ... It tells medoveadm(root):エラー:ユーザーが存在しません. Butdoveadm user * @ domain.tld`は正確にこのユーザーを返します。今、私は以下の点に出くわしたので、今のところこの問題を理解しようとはしていません。

  1. doveadmインポート

私はすでに新しいマシンにデータを同期しているので、次にこれを試しました。ポートを開かずにdockerコンテナーを起動したため、dovecotは実行されていますが、誰もpostfixやdovecotに接続できません。コンテナーのコンソールに接続してdoveadm importを試してみました。許可を得て問題を拒否しました。許可を777に設定して試してみました。doveadmインポートは問題について何も言わずに終了しましたが、ユーザーのディレクトリはまだ空です(標準のフォルダだけにメールはありません)

1
andymel

私が良いdovecot <-> dovecotコピーガイドを見つけることに成功しなかった理由は、簡単でより一般的なimap <-> imapの方法があるためです。 (たとえば ImapSync 私の質問に対するコメントをSvenに感謝します)。

ImapSync:この方法でやった。

  1. Githubからコードをダウンロードしてビルドする
  2. これを使って

ビルドに必要な依存関係

apt-get install makepasswd rcs Perl-doc libio-tee-Perl git libmail-imapclient-Perl libdigest-md5-file-Perl libterm-readkey-Perl libfile-copy-recursive-Perl build-essential make automake libunicode-string-Perl libauthen-ntlm-Perl libcrypt-ssleay-Perl libdigest-hmac-Perl libfile-copy-recursive-Perl libio-compress-Perl libio-socket-inet6-Perl libio-socket-ssl-Perl libio-tee-Perl libmodule-scandeps-Perl libnet-ssleay-Perl libpar-packer-Perl libreadonly-Perl libterm-readkey-Perl libtest-pod-Perl libtest-simple-Perl libunicode-string-Perl liburi-Perl cpanminus

CPANモジュール(CPAN =包括的なPerlアーカイブネットワーク)

 cpanm JSON::WebToken Test::MockObject Unicode::String Data::Uniqid

次に、githubからimapsyncコードを取得し、make install

完了したら、それを使用するのは簡単です

imapsync \
    --Host1 test1.lamiral.info --user1 test1 --password1 secret1 \
    --Host2 test2.lamiral.info --user2 test2 --password2 secret2

詳細 こちら

0
andymel

私はWheezyベースのpostfix + courier + mysqlからStretchベースのもの(postfix + mysql + dovecot)に移行しました。構成はわずかに更新されており、新しいインストールでいくつかの新しいオプションが追加されています。

私の移行の鍵は、ユーザーがすべて(mysqlテーブルを介して)仮想であり、すべてのメールが/ home/vmail/domain/user/[various maildirs]に格納されていることでした

新しいシステムのmaildirは、/ home/vmailではなく/ var/vmail/domain/userのすぐ下に同様の構造になっています...

そこへの「トリック」だけがファイルをコピーしていて、正しい所有権と他の許可が新しい場所に適用されていることを確認していました。

1
ivanivan

あなたは実際にimapsyncを使うことができます…しかし、それはいくつかの不明瞭なエラーで失敗しました。

rsyncはお勧めできません... dovecot/Thunderbird/icedoveはインデックスファイル/フォルダー構造を再構築しないためです。

解決策は実際には簡単です:メールクライアントにThunderbird/icedoveを使用してください!

  1. 古いサーバーと同じメールアカウントを新しいサーバーに作成する
  2. thunderbird内に古いアカウントと新しいアカウントを追加します(ドメインがすでに新しいサーバーを指している場合はIPアドレスを使用できます)
  3. 古いメールフォルダーを古いアカウントから新しいアカウントにドラッグアンドドロップすると、すべてのメールが古いアカウントからローカルにダウンロードされ、新しいアカウントにアップロードされます。

PS:最後の改善投稿に投票して「フーレイ」を削除してくれてありがとう。このプラットフォームは最低です。私は本当にボイコットについて考えます。

1
canoodle