双iRedMail(Postfix)服务器的邮件重复接收、定向投递与迁移配置咨询
双iRedMail(Postfix)服务器的邮件重复接收、定向投递与迁移配置咨询
嘿,针对你这个双iRedMail(Postfix)服务器的场景,我给你梳理几个实用的方案——毕竟你要的是同一个用户能同时收两边的邮件,或者能精准定向投递到对应服务器,对吧?咱们一步步来:
一、实现同一用户同时接收邮件的两种方案
1. 利用iRedMail自带的转发+本地副本功能
这个是最省心的,不用改太多配置:
- 选其中一台服务器(比如
mail.example.com)作为主接收入口,在iRedMail的后台用户管理里找到user1234@example.com,设置「转发地址」为user1234@servermail.example.com,同时一定要勾选「保留副本到本地邮箱」。 - 这样所有发往
user1234@example.com的邮件,会自动同时投递到两台服务器的用户邮箱里。 - 注意:两台服务器要能互相通信,确保Postfix允许接收对方的邮件(可以在
main.cf的mynetworks里添加对方的内网IP,或者调整smtpd_relay_restrictions规则),Mikrotik也要放开两台服务器之间的25端口通信。
2. 用Postfix的双投递配置(更灵活)
如果需要更精细的控制,比如针对多个用户批量设置,可以用Postfix的自定义transport映射:
- 编辑Postfix的主配置文件
/etc/postfix/main.cf,添加/修改以下参数:virtual_transport = dual_transport transport_maps = hash:/etc/postfix/transport - 打开
/etc/postfix/master.cf,添加一个自定义的传输服务:dual_transport unix - n n - - smtp -o smtp_destination_recipient_limit=1 -o smtp_always_send_ehlo=yes - 新建/编辑
/etc/postfix/transport文件,添加用户的双投递规则:user1234@example.com smtp:[mail.example.com],smtp:[servermail.example.com] - 最后执行以下命令使配置生效:
这样Postfix会把发往该用户的邮件同时推送到两台服务器的邮箱里。postmap /etc/postfix/transport postfix reload
二、按子域名定向投递的方案
如果你想让发往user1234@mail.example.com的邮件到mail.example.com服务器,发往user1234@servermail.example.com的到servermail.example.com服务器,同时主域名user1234@example.com可以任选一台接收或转发,推荐这么做:
- 用其中一台服务器(比如
mail.example.com)作为前端中继,在它的/etc/postfix/transport里配置域名路由规则:servermail.example.com smtp:[servermail.example.com] example.com local: - 执行
postmap /etc/postfix/transport和postfix reload生效。这样发往servermail.example.com子域名的邮件会被自动转发到对应服务器,主域名的邮件则留在本地处理。 - Mikrotik这边只需要把外部的25端口转发到这台中继服务器即可,不用做复杂的内容解析(毕竟Mikrotik主要管网络层面,不处理邮件内容)。
三、关键注意事项
- 邮件认证配置:两台服务器的SPF、DKIM、DMARC要做好,比如主域名
example.com的SPF记录要包含两台服务器的IP,子域名也可以单独设置SPF,避免邮件被收件方标记为垃圾邮件。 - 中继权限:确保两台服务器的Postfix都允许来自本地网络和中继服务器的邮件,避免出现投递被拒绝的情况。
- 平滑迁移:如果后续要合并到单服务器,只需要修改转发规则或transport映射,把所有邮件导向目标服务器即可,不会影响用户使用。
备注:内容来源于stack exchange,提问作者Varion Drakonov
相关产品推荐
相关产品推荐

