整合多个邮箱(dovecot、Exim、maildir)

整合多个邮箱(dovecot、Exim、maildir)

停电后,我最终在不同的机器上为每个用户设置了 2 个邮箱。我现在已经关闭了临时机器,并将邮箱放在了 的真实服务器上/srv/scratch/$username/Maildir/...,并且需要将来自这些邮箱的消息(最好保留已读/已查看状态)集成到用户的规范邮箱中。/srv/mail/$username/Maildir/...我并不偏爱将其作为子文件夹还是放在他们的主收件箱中,但是我相信所有临时邮箱本身都不包含子文件夹。(如果包含,则更愚弄用户,他们被明确告知不要在临时帐户上这样做!)

有没有一种好的方法可以最大限度地降低邮件丢失的风险,并且意味着他们的客户端在重新连接时会自动获取新的文件夹/邮件(无论需要哪个)?或者,在将新邮件转储到 Maildirs 后,我需要做什么才能告诉 Dovecot 有关新邮件的信息?

两个服务器均使用 Exim4 进行传输并使用 Dovecot 进行 IMAP 构建。

答案1

我会使用几乎符合 Maildir 传递规范的脚本将文件移动到位,这涉及使用 tmp/ 目录,然后重命名为 new/ 目录,但为此您需要重命名为 cur/ 或 new/ 目录,具体取决于原始文件的位置。

假设文件名嵌入了时间戳,则应该很少(零)发生冲突,但谨慎一点是好的。将文件写入 tmp/;如果这是一个 cur/ 文件,则保存文件名之外的状态后缀;无论是移动到 new/ 还是 cur/,都检查 new/ 中是否存在相同的名称或 cur/ 中是否存在相同的前缀;然后根据需要重命名。

注意不要因内存崩溃而丢失 cur/-in-tmp/ 上的后缀;如果出现问题,记录所有操作的日志文件将帮助您重建。

相关内容