离线 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 转储到新服务器中,一切就都正常了;无论主机名是什么,新 IMAP 服务器都会接收在其中找到的消息cur/。(不过,正如评论中提到的,请确保 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注意:子文件夹可能以或命名,具体取决于您的 IMAP 服务器类型。(如果是 Courier 服务器,Archive/2022则可能如此,因为它坚持将所有子文件夹放在 INBOX 下。)INBOX.Archive.2022

  4. 所有消息上传完成后,x退出而不保存更改(以防您意外地做了一些更改)并返回步骤 1 以恢复剩余的子文件夹。


相关内容