離線MailDir恢復建議

離線MailDir恢復建議

情況:

我有一份包含大量電子郵件的離線備份。經過一番閱讀後,我確認電子郵件可以透過 rsync 恢復到我的新伺服器上的 MailDir。

我的相當基本的問題:

檔案名稱...

在我的離線備份目錄中,所有電子郵件的檔案名稱中都包含舊伺服器名稱: ![圖|690x250](上傳://vUjwPQl63yodAvKLVY6BBuHQZZ5.png)

由於我目前的主機名稱是admin.example.com,我是否應該先設定某種類型的批次search and replace 以替換為server1.old-example.com.....admin.example.com然後執行從離線備份到線上 MailDir 的 rsync ?

如果可以,有什麼推薦的方法嗎?

謝謝

答案1

主機名稱並不重要,第一個之前的所有內容,都只是一個唯一的 ID,沒有任何定義的格式。 (包含主機名稱的目的是確保檔案名稱唯一性 - 例如,當多個 MX 伺服器透過 NFS 傳送到同一個 Maildir 時,這可以確保即使在完全相同的時刻傳送的訊息也不會發生衝突。)

因此,只需將整個 Maildir 轉儲到新伺服器中,一切就應該可以正常運作;cur/無論主機名稱為何,新的 IMAP 伺服器都會擷取在其中找到的郵件。 (不過,正如評論中提到的,請確保 UID/GID 所有權正確。)

(但是,在上傳到新伺服器之前,我可能會清除舊的伺服器特定垃圾,例如「dovecot.index」檔案。)

請小心不要錯過子資料夾 - 它們通常儲存為隱藏子目錄,例如資料夾「Archive/2022」將是Maildir/.Archive.2022/。子資料夾的儲存方式可能伺服器之間有所不同。


如果直接恢復失敗,您可以透過 IMAP 上傳訊息(允許伺服器按照需要的方式儲存它們),例如使用muttneomutt基於終端的郵件應用程式:

  1. 運行mutt -f ~/Mail_backup/以打開本地 Maildir(不要包含“cur/”部分!)。

  2. 用於Shift+T . Enter選擇(“標記”)所有訊息。

  3. 用於; Shift+C“複製”,然後提供目標 IMAP 伺服器的 URL。

    將標記複製到郵箱:imaps://[電子郵件受保護]/收件匣

    注意:子資料夾的命名可能Archive.2022取決於Archive/2022您的 IMAP 伺服器類型。 (INBOX.Archive.2022如果它是 Courier 伺服器,甚至可能會堅持將所有子資料夾放在 INBOX 下。)

  4. 上傳所有訊息後,x退出而不儲存變更(以防萬一您不小心做了一些更改)並返回步驟 1 以恢復剩餘的子資料夾。


相關內容