(请耐心听我说,电子邮件设置的整个概念对我来说很新)
我有一个配置了 postfix、dovecot 和 roundcube 的服务器,一切都设置正确。
在旧服务器(也使用 postfix)上,所有邮件都在一个文件中,我尝试将它们迁移到新服务器(即将文件复制到 /var/spool/mail/$user 和 /var/mail/$user 的新路径)。
如果我从终端使用命令,mail
我就可以看到新服务器上的邮件。
但是当我尝试从 roundcube 访问时,我收到“邮箱是空的”
我可以在文件夹 /home/$user/mail/.Sent/cur/.... 中看到我已发送的邮件。
但每封邮件都是一个单独的文件
我是否遗漏了什么?是不是因为 dovecot 使用了另一种邮件结构,所以才出现了这个问题?
答案1
首先,让我为您澄清一些基本知识。
- 邮箱格式是旧服务器上的格式。它实际上是一个文件中的多封邮件
- Maildir 格式是您在主目录中看到的格式。这些
cur
文件夹和其他文件夹与此格式相关。
如果我猜得没错,您在旧服务器上有一个设置,告诉 Dovecot 使用邮箱格式并从 读取邮箱/var/spool/mail/$user
,在新服务器中,Dovecot 配置为使用 Maildir 格式并将它们存储在/home/$user/mail
。这可以在 Dovecot 配置文件中配置,但我建议您不要动它,因为 Maildir 更好,而且 Dovecot 对它的支持非常好。
您所要做的就是mb2md
在新机器上安装一个实用程序,将所有邮箱转换为 maildir 格式(在此之前,请仔细阅读其手册)并将生成的 maildir 传输到适当的位置。
我还建议您检查 Dovecot 配置文件,了解它当前的配置方式,以及在需要时如何更改 maildir 的位置。
答案2
一个选择是使用imapsync
实用程序将电子邮件从旧服务器移动到新服务器。这样您就不需要执行稍微有风险的数据转换。