![在使用系统帐户的两个服务器之间合并 ~/Maildir](https://linux22.com/image/739442/%E5%9C%A8%E4%BD%BF%E7%94%A8%E7%B3%BB%E7%BB%9F%E5%B8%90%E6%88%B7%E7%9A%84%E4%B8%A4%E4%B8%AA%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B9%8B%E9%97%B4%E5%90%88%E5%B9%B6%20~%2FMaildir.png)
我查看了以下内容,但没有找到解决我的问题的方法:
我有一台服务器 A,它使用 Postfix/Dovecot 设置,并在系统用户帐户(即非虚拟用户)中使用 ~/Maildir 格式。我还有一台服务器 B,它以相同的方式配置,并且 ~/Maildir 中可能存在或不存在邮件。
如果服务器 B 上用户的 ~/Maildir 不存在,那么可以安全地假设我可以将服务器 A ~/Maildir rsync 到服务器 B ~/Maildir,它将保留文件夹、已读邮件、其他元数据等。
如果两台服务器上都有 ~/Maildir,并且每台服务器上都有现有邮件,我如何才能安全地将服务器 A 的数据合并到服务器 B 上的 ~/Maildir 中?原则上,数据文件本身应该是唯一的,并且它应该归结为两台服务器上都存在的 Dovecot 元数据文件。
我正在这里寻找,但这是一个通用的举动,我认为由于服务器配置相似(如果不相同),那么我的情况应该容易得多:
https://wiki2.dovecot.org/Migration/Dsync
考虑到其他问题的内容,最后一个问题显得微不足道且过于简单。我不清楚这是针对虚拟用户还是系统用户的。
https://serverfault.com/a/866298/386414
我认为我没有什么可失去的,并且发现对于单个用户,我只需运行:
doveadm import maildir:~/old_mail/Maildir "" all
但这样会将邮件导入为“未读”,而不是旧 Maildir 的状态。我该如何修复这个问题?
我认为这更符合我的要求,因为import
你只能运行一次,因为它会不加区别地多次带来电子邮件:
doveadm sync maildir:~/old_mail/Maildir
但仍然存在所有邮件都未读的问题。
答案1
这个答案来得晚了,但我确实通过以下方式合并了四个电子邮件帐户
sudo cp -a previous/Maildir/* next/Maildir
之前标记为新消息的消息在合并后仍被标记为新消息。如果想要更安全,您可以只移动cur
和new
目录的内容。这些目录中的文件具有唯一的名称,不会发生冲突。
答案2
这:
说道:
Maildir 实际上使用了一种独特的格式,这使得这变得非常容易。如果您希望邮件显示为新邮件,只需将其放在邮件用户邮件根目录内的 new/ 目录中。否则,它将进入 cur/ 目录。
我不确定这在您的场景中如何应用(或者是否适用)但可能值得检查。