答案1
主机名无关紧要,直到第一个为止的所有内容,
都只是一个唯一的 ID,没有任何定义的格式。(包含主机名的目的是确保文件名的唯一性 - 例如,当多个 MX 服务器通过 NFS 传递到同一个 Maildir 时,这可以确保即使在完全相同的时刻传递的消息也不会发生冲突。)
因此,只需将整个 Maildir 转储到新服务器中,一切就都正常了;无论主机名是什么,新 IMAP 服务器都会接收在其中找到的消息cur/
。(不过,正如评论中提到的,请确保 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
注意:子文件夹可能以或命名,具体取决于您的 IMAP 服务器类型。(如果是 Courier 服务器,Archive/2022
则可能如此,因为它坚持将所有子文件夹放在 INBOX 下。)INBOX.Archive.2022
所有消息上传完成后,x退出而不保存更改(以防您意外地做了一些更改)并返回步骤 1 以恢复剩余的子文件夹。