温馨提示×

ubuntu邮件服务器怎么迁移数据

小樊
48
2026-09-10 22:41:35
栏目: 云计算

在 Ubuntu 上迁移邮件服务器数据,通常取决于你使用的邮件系统类型(如 Postfix + Dovecot、Zimbra、Mailcow、iRedMail 等)。下面我以最常见的 Postfix + Dovecot(系统用户 / 虚拟用户)为例,给你一套通用、可落地的迁移方案,并补充其他场景。


一、迁移前准备

1. 确认邮件系统组成

dpkg -l | grep -E "postfix|dovecot|mysql|sqlite"

常见组合:

  • Postfix(SMTP)
  • Dovecot(IMAP/POP3)
  • 用户数据:
    • 系统用户:/home/user/Maildir
    • 虚拟用户:MySQL / LDAP + /var/vmail/domain/user

2. 源服务器信息收集

  • 邮件存储路径
  • 用户账号来源(系统用户 / 数据库)
  • 域名列表
  • 是否使用 SSL(证书路径)

二、标准迁移步骤(Postfix + Dovecot)

1. 停止邮件服务(源服务器)

systemctl stop postfix dovecot

2. 迁移邮件数据

方式 A:Maildir 直接拷贝(推荐)

rsync -avz --delete /var/vmail/ root@新服务器:/var/vmail/

或系统用户:

rsync -avz /home/ root@新服务器:/

方式 B:使用 imapsync(跨平台/不同结构)

imapsync \
--host1 oldmail.example.com --user1 user@domain --password1 xxx \
--host2 newmail.example.com --user2 user@domain --password2 xxx

3. 迁移用户和配置

系统用户

# 源服务器
getent passwd | grep vmail

手动或脚本创建用户。

虚拟用户(数据库)

导出导入 MySQL:

mysqldump maildb > maildb.sql
scp maildb.sql newserver:
mysql maildb < maildb.sql

配置文件

rsync -avz /etc/postfix /etc/dovecot root@newserver:/etc/

4. 迁移 SSL 证书

rsync -avz /etc/letsencrypt newserver:/etc/

或复制:

  • fullchain.pem
  • privkey.pem

5. 新服务器配置检查

postfix check
doveconf -n

启动服务:

systemctl start postfix dovecot

三、DNS 切换(关键)

修改 MX 记录:

example.com MX 10 mail.example.com

并等待 TTL 过期(通常 1–24 小时)。


四、其他邮件系统迁移

Zimbra

zmprov export
rsync /opt/zimbra

Mailcow

docker compose down
rsync -avz /opt/mailcowdata newserver:/opt/
docker compose up -d

iRedMail

类似 Postfix + Dovecot + MySQL 方案。


五、迁移后验证

  • 发信 / 收信测试
  • 查看日志:
tail -f /var/log/mail.log
  • 用户登录 IMAP 测试

六、注意事项

  • 不要同时运行两台邮件服务器
  • 大邮箱建议低峰期迁移
  • 可先迁移再切 DNS(减少 downtime)

如果你能告诉我:

  • 使用的邮件系统(Postfix/Dovecot?Zimbra?)
  • 用户数量
  • 是否是虚拟用户

我可以给你更精确的命令和脚本

0