将 Maildir 备份同步到帐户

将 Maildir 备份同步到帐户

我有一个客户在服务器上创建了大约 20 个邮箱,他们已经使用了几个星期。所以这些邮箱里有邮件,不会丢失。

现在他们从一家旧托管公司恢复了这些邮箱的备份,他们希望我将这些备份与当前邮箱合并。我尝试了很多使用 dsync 和 doveadm sync 的方法,但找不到正确的语法,有人能帮我吗?

基本上,我只想将 /home/backup/account1/Maildir 合并到 /home/vmail/domain.tld/account1/。在此服务器上[电子邮件保护]根据 dovecot 配置,已经引用了 /home/vmail/domain.tld/account1,所以如果我理解正确的话,我应该能够使用 -u,但我该如何引用备份?看起来 doveadm sync 仅与其他 dovecot 服务器兼容,而我没有?我原本想设置一个完整的其他邮件服务器并使用 imapsync,它确实很容易使用,但我认为一定有一种方法可以使用 doveadm sync 或 dsync 来实现,而不会浪费那么多时间。谢谢

答案1

您可以使用 imapcopy 或 imapsync 软件将服务器合并在一起。我一直使用它来备份邮件。缺点是您需要知道帐户的密码。

https://imapsync.lamiral.info/

答案2

不久前,我将邮件从托管计划迁移到我的邮件服务器合并邮箱。正如您一样,我有一个 maildirs 备份,其中实际上包含您的 IMAP 邮箱的目录/文件结构。如果您执行此操作,ls -la/home/backup/account1/Maildir应该会看到类似以下内容:

# ls -la
drwx------. 19 vmail vmail  4096  4 mag 18.15 .
drwxr-xr-x.  3 vmail vmail  4096 29 nov 17.23 ..
drwx------.  2 vmail vmail  4096  4 mag 18.15 cur
-rw-------.  1 vmail vmail   496  4 mag 18.15 dovecot.index
-rw-------.  1 vmail vmail 28656  4 mag 18.09 dovecot.index.cache
-rw-------.  1 vmail vmail    40  4 mag 18.15 dovecot.index.log
-rw-------.  1 vmail vmail 32864  4 mag 18.15 dovecot.index.log.2
-rw-------.  1 vmail vmail    23 15 feb 11.22 dovecot-keywords
-rw-------.  1 vmail vmail   360 29 nov 17.39 dovecot.mailbox.log
-rw-------.  1 vmail vmail   485  4 mag 18.09 dovecot-uidlist
-rw-------.  1 vmail vmail     8 29 nov 17.49 dovecot-uidvalidity
-r--r--r--.  1 vmail vmail     0 29 nov 17.37 dovecot-uidvalidity.565b29d3
drwx------.  5 vmail vmail  4096 15 feb 16.24 .Drafts
drwx------.  5 vmail vmail  4096 30 nov 10.38 .Job
drwx------.  5 vmail vmail  4096  3 mag 22.48 .Junk
-rw-------.  1 vmail vmail  3056  4 mag 18.09 maildirsize
drwx------.  2 vmail vmail  4096  4 mag 18.15 new
drwx------.  5 vmail vmail  4096 29 nov 17.39 .Newsletter
drwx------.  5 vmail vmail  4096 30 nov 10.38 .Personali
drwx------.  5 vmail vmail  4096 15 feb 16.24 .Sent
-rw-------.  1 vmail vmail   140 29 nov 17.39 subscriptions
drwx------.  2 vmail vmail  4096  4 mag 18.09 tmp
drwx------.  5 vmail vmail  4096 29 mar 22.44 .Trash

每个.Something目录都是一个 IMAP 文件夹,其中包含:

# ls -la .Trash/
drwx------.  5 vmail vmail 4096 29 mar 22.44 .
drwx------. 19 vmail vmail 4096  4 mag 18.15 ..
drwx------.  2 vmail vmail 4096 29 mar 22.43 cur
-rw-------.  1 vmail vmail 7060 29 mar 22.44 dovecot.index.cache
-rw-------.  1 vmail vmail 3136 29 mar 22.44 dovecot.index.log
-rw-------.  1 vmail vmail   10  2 gen 20.46 dovecot-keywords
-rw-------.  1 vmail vmail  957 29 mar 22.43 dovecot-uidlist
drwx------.  2 vmail vmail 4096 15 lug  2015 new
drwx------.  2 vmail vmail 4096 29 mar 22.43 tmp

cur文件new夹包含此 IMAP 文件夹中的邮件(每个文件都是一封邮件),tmp是一个临时目录并且应该为空:

# ls -ls .Trash/cur/
 4 -rw-------. 1 vmail vmail  2039 22 ott  2015 1445534803.M462117P23470V0000000000000901I000000000122C00E_0.srv-nya,S=2039:2,S
 4 -rw-------. 1 vmail vmail  1191  2 gen 20.45 1451763951.M751917P11002.srv-nya,S=1191,W=1223:2,Sa
64 -rw-------. 1 vmail vmail 64457  4 feb 14.57 1454594258.M272724P14796.srv-nya,S=64457,W=65380:2,S
 8 -rw-------. 1 vmail vmail  5163  7 feb 13.41 1454848911.M448032P9360.srv-nya,S=5163,W=5256:2,S
 4 -rw-------. 1 vmail vmail  2156 24 feb 10.18 1456305519.M460217P17448.srv-nya,S=2156,W=2200:2,S
 4 -rw-------. 1 vmail vmail  2193 24 feb 12.07 1456312052.M200955P5273.srv-nya,S=2193,W=2237:2,Sa
 4 -rw-------. 1 vmail vmail  2200 24 feb 12.12 1456312374.M662245P6161.srv-nya,S=2200,W=2243:2,Sa
 4 -rw-------. 1 vmail vmail  1518 21 mar 21.36 1458592592.M566137P20473.srv-nya,S=1518,W=1557:2,Sa
12 -rw-------. 1 vmail vmail  9784 29 mar 12.29 1459247350.M595698P12652.srv-nya,S=9784,W=9937:2,Sa
 8 -rw-------. 1 vmail vmail  5176 29 mar 13.10 1459249819.M474900P19505.srv-nya,S=5176,W=5269:2,Sa
 8 -rw-------. 1 vmail vmail  5325 29 mar 14.43 1459255390.M406958P2566.srv-nya,S=5325,W=5427:2,Sa
 8 -rw-------. 1 vmail vmail  5668 29 mar 19.08 1459271296.M76075P16861.srv-nya,S=5668,W=5765:2,Sa
 8 -rw-------. 1 vmail vmail  5673 29 mar 19.16 1459271792.M922218P18404.srv-nya,S=5673,W=5770:2,Sa
 8 -rw-------. 1 vmail vmail  5755 29 mar 20.12 1459275164.M71573P28250.srv-nya,S=5755,W=5853:2,Sa
 8 -rw-------. 1 vmail vmail  5622 29 mar 21.26 1459279615.M929486P8464.srv-nya,S=5622,W=5718:2,Sa

您还可以看到一些dovecot.somethingdovecot 的支持文件和maildirsize包含有关您的 IMAP 配额信息的文件(如果启用)。

如果您的旧主机使用与 dovecot 不同的服务(例如 courier),您将看到类似的文件,名称类似courier.*

如果您想合并新旧邮箱,您可以将所有邮件文件(如1459279615.M929486P8464.srv-nya,S=5622,W=5718:2,Sa)移动到新邮箱中的相应目录中。

为了做到这一点,您可以:

  • 开始前备份新旧邮箱

  • 递归删除所有dovecot.*文件并maildirsize从备份中删除

  • 将所有其他文件移动/复制到合并目录的新邮箱(您应该能够使用 来完成cd /home/backup/account1/Maildir && rsync -av --progress . /home/vmail/domain.tld/account1/)。注意:邮件的文件名通常包含邮件服务器主机名,因此您不应该有文件名冲突。

  • 如果需要,以递归方式修复新邮箱的权限/文件所有权/SELinux 上下文

  • 从新邮箱中删除该maildirsize文件以修复配额计数(当新邮件传递到此邮箱以修复问题时,dovecot 会重新创建它)

  • 从您的邮件客户端订阅所有 IMAP 文件夹(如果需要且未自动完成)

这对我来说很有效,如果你想尝试,我建议你先在邮箱副本上进行测试(例如创建一个名为[电子邮件保护],复制所有文件[电子邮件保护]邮箱,修复权限/文件所有权,检查它是否通过 Webmail/IMAP 客户端工作,像之前说的那样合并邮箱,发送邮件至[电子邮件保护]强制创建 maildirsize 并通过 IMAP 客户端再次检查所有邮件是否可读)

相关内容