從舊的 postfix/dovecot 郵件伺服器遷移到新的郵件伺服器
簡而言之: 有人知道將 maildir 數據從一個鴿舍遷移到另一個鴿舍的分步指南嗎?
長篇大論: 我嘗試將我的郵件伺服器遷移到新機器上。
- 舊伺服器
- 後綴/鴿舍
- 分步指南:https ://www.debinux.de/2015/05/mailserver-from-scratch-debian-8/
- 新伺服器
- postfix/dovecot 但在 docker
- 分步指南:https ://github.com/tomav/docker-mailserver
我首先嘗試簡單地 tar & rsync 我的單個 maildir 目錄,但所有子文件夾在 Thunderbird 中都顯示為灰色。
所以我想我用 doveadm sync 再做一次,但現在我根本找不到明確的路徑如何用dovecot 手冊、google 或 serverfault 來做。
真的沒有簡單的分步指南來做到這一點嗎?還是太容易了,我不明白?對於像我這樣的郵件伺服器菜鳥,該手冊沒有包含足夠的解釋。
doveadm
同步/備份我從
doveadm backup -u me@domain.tld ...
. 它告訴我:doveadm(root):錯誤:使用者不存在
但
doveadm user *@domain.tld
準確地返回這個使用者。現在我偶然發現了以下幾點,所以我暫時不嘗試理解這個問題。 2. doveadm 導入因為我已經將數據 tar & rsync 到我的新機器上,所以接下來我嘗試了這個。
我在沒有打開埠的情況下啟動了 docker 容器,因此 dovecot 正在執行,但沒有一個可以連接到 postfix 或 dovecot。
我連接到容器的控制台並嘗試
doveadm
導入。獲得許可被拒絕的問題。嘗試將權限設置為 777。doveadm
導入完成但沒有告訴我任何問題,但使用者的目錄仍然是空的(只是標准文件夾沒有郵件)
我沒有成功找到一個好的 dovecot<->dovecot 複製指南的原因是有一種簡單且更通用的 imap<->imap 方法。(例如ImapSync感謝 Sven 對我的問題的評論)。
ImapSync:我是這樣做的。
- 從 github 下載程式碼並建構它
- 用它
建構的必要依賴項
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
更多細節在這裡