Email

將 Maildir 備份同步到帳戶

  • April 11, 2020

我有一個客戶,他在伺服器上創建了大約 20 個郵箱,他們已經使用了幾個星期。所以里面有郵件,不​​會失去。

現在他們從一家舊託管公司恢復了這些郵箱的備份,他們希望我將這些備份與目前郵箱合併。我用 dsync 和 doveadm sync 嘗試了很多東西,但我找不到正確的語法,有人可以幫我嗎?

基本上,我只想將 /home/backup/account1/Maildir 合併到 /home/vmail/domain.tld/account1/。根據 dovecot 配置,在此伺服器上 account1@domain.tld 已經在引用 /home/vmail/domain.tld/account1 ,所以如果我理解正確的話,我應該可以使用 -u ,但是如何引用備份? 看起來 doveadm sync 只與其他我沒有的 dovecot 伺服器兼容?我正在考慮設置一個完整的其他郵件伺服器並使用 imapsync,這真的很容易使用,但我認為必須有一種方法可以使用 doveadm sync 或 dsync 不涉及必須浪費時間。謝謝

您可以使用 imapcopy 或 imapsync 軟體將伺服器合併在一起。我一直用它來做郵件備份。缺點是您需要知道帳戶的密碼。

https://imapsync.lamiral.info/

我前段時間將郵件從託管計劃遷移到我的郵件伺服器合併郵箱。正如您一樣,我有一個 maildirs 的備份,其中實際上包含您的 IMAP 郵箱的目錄/文件結構。如果你做一個ls -lainto/home/backup/account1/Maildir你應該看到類似的東西:

# ls -la
drwx------. 19 vmail vmail  4096  4 mag 18.15 .
drwxr-xr-x.  3 vmail vmail  4096 29 nov 17.23 ..
drwx------.  2 vmail vmail  4096  4 mag 18.15 cur
-rw-------.  1 vmail vmail   496  4 mag 18.15 dovecot.index
-rw-------.  1 vmail vmail 28656  4 mag 18.09 dovecot.index.cache
-rw-------.  1 vmail vmail    40  4 mag 18.15 dovecot.index.log
-rw-------.  1 vmail vmail 32864  4 mag 18.15 dovecot.index.log.2
-rw-------.  1 vmail vmail    23 15 feb 11.22 dovecot-keywords
-rw-------.  1 vmail vmail   360 29 nov 17.39 dovecot.mailbox.log
-rw-------.  1 vmail vmail   485  4 mag 18.09 dovecot-uidlist
-rw-------.  1 vmail vmail     8 29 nov 17.49 dovecot-uidvalidity
-r--r--r--.  1 vmail vmail     0 29 nov 17.37 dovecot-uidvalidity.565b29d3
drwx------.  5 vmail vmail  4096 15 feb 16.24 .Drafts
drwx------.  5 vmail vmail  4096 30 nov 10.38 .Job
drwx------.  5 vmail vmail  4096  3 mag 22.48 .Junk
-rw-------.  1 vmail vmail  3056  4 mag 18.09 maildirsize
drwx------.  2 vmail vmail  4096  4 mag 18.15 new
drwx------.  5 vmail vmail  4096 29 nov 17.39 .Newsletter
drwx------.  5 vmail vmail  4096 30 nov 10.38 .Personali
drwx------.  5 vmail vmail  4096 15 feb 16.24 .Sent
-rw-------.  1 vmail vmail   140 29 nov 17.39 subscriptions
drwx------.  2 vmail vmail  4096  4 mag 18.09 tmp
drwx------.  5 vmail vmail  4096 29 mar 22.44 .Trash

每個.Something目錄都是一個 IMAP 文件夾,其中包含:

# ls -la .Trash/
drwx------.  5 vmail vmail 4096 29 mar 22.44 .
drwx------. 19 vmail vmail 4096  4 mag 18.15 ..
drwx------.  2 vmail vmail 4096 29 mar 22.43 cur
-rw-------.  1 vmail vmail 7060 29 mar 22.44 dovecot.index.cache
-rw-------.  1 vmail vmail 3136 29 mar 22.44 dovecot.index.log
-rw-------.  1 vmail vmail   10  2 gen 20.46 dovecot-keywords
-rw-------.  1 vmail vmail  957 29 mar 22.43 dovecot-uidlist
drwx------.  2 vmail vmail 4096 15 lug  2015 new
drwx------.  2 vmail vmail 4096 29 mar 22.43 tmp

curnew文件夾包含此 IMAP 文件夾的郵件(每個文件都是一個郵件),tmp是一個臨時目錄,應該為空:

# ls -ls .Trash/cur/
4 -rw-------. 1 vmail vmail  2039 22 ott  2015 1445534803.M462117P23470V0000000000000901I000000000122C00E_0.srv-nya,S=2039:2,S
4 -rw-------. 1 vmail vmail  1191  2 gen 20.45 1451763951.M751917P11002.srv-nya,S=1191,W=1223:2,Sa
64 -rw-------. 1 vmail vmail 64457  4 feb 14.57 1454594258.M272724P14796.srv-nya,S=64457,W=65380:2,S
8 -rw-------. 1 vmail vmail  5163  7 feb 13.41 1454848911.M448032P9360.srv-nya,S=5163,W=5256:2,S
4 -rw-------. 1 vmail vmail  2156 24 feb 10.18 1456305519.M460217P17448.srv-nya,S=2156,W=2200:2,S
4 -rw-------. 1 vmail vmail  2193 24 feb 12.07 1456312052.M200955P5273.srv-nya,S=2193,W=2237:2,Sa
4 -rw-------. 1 vmail vmail  2200 24 feb 12.12 1456312374.M662245P6161.srv-nya,S=2200,W=2243:2,Sa
4 -rw-------. 1 vmail vmail  1518 21 mar 21.36 1458592592.M566137P20473.srv-nya,S=1518,W=1557:2,Sa
12 -rw-------. 1 vmail vmail  9784 29 mar 12.29 1459247350.M595698P12652.srv-nya,S=9784,W=9937:2,Sa
8 -rw-------. 1 vmail vmail  5176 29 mar 13.10 1459249819.M474900P19505.srv-nya,S=5176,W=5269:2,Sa
8 -rw-------. 1 vmail vmail  5325 29 mar 14.43 1459255390.M406958P2566.srv-nya,S=5325,W=5427:2,Sa
8 -rw-------. 1 vmail vmail  5668 29 mar 19.08 1459271296.M76075P16861.srv-nya,S=5668,W=5765:2,Sa
8 -rw-------. 1 vmail vmail  5673 29 mar 19.16 1459271792.M922218P18404.srv-nya,S=5673,W=5770:2,Sa
8 -rw-------. 1 vmail vmail  5755 29 mar 20.12 1459275164.M71573P28250.srv-nya,S=5755,W=5853:2,Sa
8 -rw-------. 1 vmail vmail  5622 29 mar 21.26 1459279615.M929486P8464.srv-nya,S=5622,W=5718:2,Sa

您還可以看到一些dovecot.something文件是 dovecot 的支持文件以及maildirsize包含有關您的 IMAP 配額(如果啟用)的資訊的文件。

如果您的舊主機使用與 dovecot 不同的東西(如 courier),您將看到類似的文件,其名稱如courier.*.

如果您想合併新舊郵箱,您可以將所有郵件文件(如1459279615.M929486P8464.srv-nya,S=5622,W=5718:2,Sa)移動到新郵箱中的相應目錄。

為了做到這一點,您可以:

  • 在開始之前備份舊郵箱和新郵箱
  • 遞歸刪除所有dovecot.*文件並maildirsize從備份中刪除
  • 將所有其他文件移動/複製到合併目錄的新郵箱(您應該可以使用cd /home/backup/account1/Maildir && rsync -av --progress . /home/vmail/domain.tld/account1/)。注意:郵件的文件名通常包含郵件伺服器主機名,所以你不應該有文件名衝突。
  • 如果需要,遞歸修復新郵箱的權限/文件所有權/SELinux 上下文
  • maildirsize從新郵箱中刪除文件以修復配額計數(當新郵件發送到此郵箱時,dovecot 將重新創建它以修復問題)
  • 從您的郵件客戶端訂閱所有 IMAP 文件夾(如果需要且未自動完成)

這對我有用,如果您想嘗試,我建議您先在郵箱副本上進行測試(例如創建一個名為 test@yourdomain.com 的新郵箱,將 account1@yourdomain.com 郵箱的所有文件複製到其中,修復權限/文件所有權,檢查它是否通過 webmail/IMAP 客戶端工作,合併郵箱,如前所述,發送郵件到 test@yourdomain.com 以強制創建 maildirsize 並再次通過 IMAP 客戶端檢查所有郵件都可讀)

引用自:https://serverfault.com/questions/774787