从旧的 dovecot 服务器备份访问邮件

从旧的 dovecot 服务器备份访问邮件

我想访问 dovecot 邮件服务器虚拟邮箱文件的存档副本中的几 GB 旧邮件。我认为它是 dovecot 的 mdbox 格式的旧版本?该服务器建于 2008 年,存档于 2011 年。我猜它可能是 mdbox 1.1。

我正在寻找有关如何使这封邮件能够用雷鸟浏览的建议。

如果我可以启动旧版本的 dovecot 通过 IMAP 提供这封邮件(可能在 docker 容器中),那就太棒了。或者也许新版本的 dovecot 可以识别旧格式?也许是某种转换工具?

任何有关识别格式/版本的帮助都将不胜感激。我的文件如下所示:

domain/
  username/
    dovecot.index
    dovecot.index.cache
    dovecot.index.log
    dovecot.index.log.2
    dovecot-keywords
    dovecot-uidlist
    maildirsize
    subscriptions
    cur/
      1314076009.V55I369181M295175.mail.exmaple.com:2,STa
    new/
    tmp/
    .folder/
      dovecot.index
      dovecot.index.cache
      dovecot.index.log
      dovecot-keywords
      dovecot-uidlist
      cur
      new
      tmp
    .folder.subfolder/
      dovecot.index
      dovecot.index.cache
      dovecot.index.log
      dovecot-uidlist
      cur
      new
      tmp

当然,还有更多的文件夹和更多的邮件文件,文件名中带有标志,就像示例中的标志一样。

答案1

您想使用 Dovecotimapd 能够复制元数据。无需部署旧版本,当前版本(或您最喜欢的发行版支持的最新版本)可以很好地处理旧备份。

您的备份是文件级的格式副本,Maildir++其中包含一些多夫科特特定的元信息。//目录中的每个文件都cur包含new一个tmp原始(互联网信息格式(参见 RFC5322)邮件。调用的文件index只是为了更快查找的缓存,uidlistkeywords包含在其他地方找不到的信息。

即使您不想保留原始 UID 映射(如果您想要避免下载备份时连接的客户端中已缓存的文件,则最有趣),还有一件事不包含在您可能想要恢复的实际邮件文件和文件名中:自定义 IMAP 标志到其名称的映射。该映射包含在文件中,dovecot-keywords并告诉邮件服务器逗号 ( ) 后附加到文件名的小写字母中的哪个a..z表示哪个关键字($Forwarded, Charity, Junk, ..)

如果您希望每个用户都能访问特定的备份,那么您还需要一个带有用户数据库的完整配置。如果您只需要使用 IMAP 客户端连接到所有内容并使用它来复制所需的内容,那么您可能需要设置一个 Dovecot 实例,其中所有用户同时在namespaces 中可见,每个用户都有一个mail_location=maildir:/domain/username指示Maildir++布局的 (而不是fs子文件夹以递归方式排列的布局,而不是以点分隔的路径)。

步骤大致如下:

  • 安装 dovecot-imapd,最好是在尚未运行此类服务器的服务器上,以方便隔离备份恢复操作和其他邮件
  • 创建一个系统用户并允许其访问这些目录,然后在 Dovecot 中将其配置为使用以下方式访问邮件的用户(mail_uid=vmail
  • 从默认的 dovecot 配置中,添加与namespacemaildir 根目录(包含 cur/new/tmp/.dotfolders 的文件夹)一样多的块
  • 添加 passdb 文件以便为您提供一个用户可以连接所有这些
  • 通过您最喜欢的邮件客户端进行连接,并将您想要保留的所有内容拖放到您当前的邮件帐户中

相关内容