我想访问 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
只是为了更快查找的缓存,uidlist
和keywords
包含在其他地方找不到的信息。
即使您不想保留原始 UID 映射(如果您想要避免下载备份时连接的客户端中已缓存的文件,则最有趣),还有一件事不包含在您可能想要恢复的实际邮件文件和文件名中:自定义 IMAP 标志到其名称的映射。该映射包含在文件中,dovecot-keywords
并告诉邮件服务器逗号 ( ) 后附加到文件名的小写字母中的哪个a..z
表示哪个关键字($Forwarded
, Charity
, Junk
, ..)
如果您希望每个用户都能访问特定的备份,那么您还需要一个带有用户数据库的完整配置。如果您只需要使用 IMAP 客户端连接到所有内容并使用它来复制所需的内容,那么您可能需要设置一个 Dovecot 实例,其中所有用户同时在namespace
s 中可见,每个用户都有一个mail_location=maildir:/domain/username
指示Maildir++
布局的 (而不是fs
子文件夹以递归方式排列的布局,而不是以点分隔的路径)。
步骤大致如下:
- 安装 dovecot-imapd,最好是在尚未运行此类服务器的服务器上,以方便隔离备份恢复操作和其他邮件
- 创建一个系统用户并允许其访问这些目录,然后在 Dovecot 中将其配置为使用以下方式访问邮件的用户(
mail_uid=vmail
) - 从默认的 dovecot 配置中,添加与
namespace
maildir 根目录(包含 cur/new/tmp/.dotfolders 的文件夹)一样多的块 - 添加 passdb 文件以便为您提供一个用户可以连接所有这些
- 通过您最喜欢的邮件客户端进行连接,并将您想要保留的所有内容拖放到您当前的邮件帐户中