答案1
主機名稱並不重要,第一個之前的所有內容,
都只是一個唯一的 ID,沒有任何定義的格式。 (包含主機名稱的目的是確保檔案名稱唯一性 - 例如,當多個 MX 伺服器透過 NFS 傳送到同一個 Maildir 時,這可以確保即使在完全相同的時刻傳送的訊息也不會發生衝突。)
因此,只需將整個 Maildir 轉儲到新伺服器中,一切就應該可以正常運作;cur/
無論主機名稱為何,新的 IMAP 伺服器都會擷取在其中找到的郵件。 (不過,正如評論中提到的,請確保 UID/GID 所有權正確。)
(但是,在上傳到新伺服器之前,我可能會清除舊的伺服器特定垃圾,例如「dovecot.index」檔案。)
請小心不要錯過子資料夾 - 它們通常儲存為隱藏子目錄,例如資料夾「Archive/2022」將是Maildir/.Archive.2022/
。子資料夾的儲存方式可能伺服器之間有所不同。
如果直接恢復失敗,您可以透過 IMAP 上傳訊息(允許伺服器按照需要的方式儲存它們),例如使用mutt
或neomutt
基於終端的郵件應用程式:
運行
mutt -f ~/Mail_backup/
以打開本地 Maildir(不要包含“cur/”部分!)。用於Shift+T
.
Enter選擇(“標記”)所有訊息。用於; Shift+C“複製”,然後提供目標 IMAP 伺服器的 URL。
將標記複製到郵箱:imaps://[電子郵件受保護]/收件匣
注意:子資料夾的命名可能
Archive.2022
取決於Archive/2022
您的 IMAP 伺服器類型。 (INBOX.Archive.2022
如果它是 Courier 伺服器,甚至可能會堅持將所有子資料夾放在 INBOX 下。)上傳所有訊息後,x退出而不儲存變更(以防萬一您不小心做了一些更改)並返回步驟 1 以恢復剩餘的子資料夾。