You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Modoboa搭配Postfix部署后入站邮件报loops back to myself错误如何解决?

报错产生原因

你遇到的mail for example.com loops back to myself报错核心逻辑是:
Postfix收到发往example.com域的邮件时,首先检查mydestination参数,发现该域不在本地投递域列表中,于是查询example.com的MX记录,得到MX地址是mail.example.com,刚好对应Postfix自身的服务地址,Postfix判定存在邮件转发环路,因此直接拒收邮件。
由于你使用Modoboa邮件系统,默认采用虚拟域+虚拟用户的方式管理邮箱,不会将业务投递域加入mydestination,触发该报错的核心原因是Postfix的虚拟域配置缺失,未将example.com识别为可投递的虚拟邮箱域。

排查修复步骤

  • 第一步:确认mydestination配置合规
    执行postconf mydestination,确认返回值为$myhostname或者仅包含mail.example.com、localhost这类本地主机名,不要加入example.com,避免和Modoboa的虚拟域逻辑冲突。你的当前配置是符合要求的,无需修改。
  • 第二步:验证虚拟域配置
    执行命令postconf virtual_mailbox_domains,确认返回值包含Modoboa的虚拟域查询配置,类似如下格式:
    virtual_mailbox_domains = mysql:/etc/postfix/sql-domains.cf
    
    你也可以直接查询指定域名是否在虚拟域列表中:
    postmap -q example.com mysql:/etc/postfix/sql-domains.cf
    
    如果执行后无返回值,登录Modoboa后台,进入「域名」管理页面,确认example.com已经被添加且处于启用状态。
  • 第三步:验证传输规则配置
    执行命令postconf transport_maps,确认返回值包含传输规则查询配置,类似如下格式:
    transport_maps = mysql:/etc/postfix/sql-transport.cf
    
    执行查询命令确认投递规则:
    postmap -q example.com mysql:/etc/postfix/sql-transport.cf
    
    正常返回结果应为lmtp:unix:private/dovecot-lmtp,代表发往该域的邮件会交给Dovecot的LMTP服务处理,不会触发外部转发逻辑。
  • 第四步:重载配置生效
    所有配置调整完成后,执行命令重载Postfix配置:
    systemctl reload postfix
    
  • 第五步:功能验证
    使用外部邮箱向你的user@example.com地址发信,查看/var/log/mail.log日志,确认无环路报错,邮件正常投递到对应邮箱。

特殊场景说明

如果你不使用Modoboa的虚拟邮箱功能,仅需用本地系统用户收信,直接修改/etc/postfix/main.cf中的mydestination参数,添加example.com:

mydestination = $myhostname, example.com, localhost

重载Postfix配置后即可正常收信。

内容的提问来源于stack exchange,提问作者Radial

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 08:36:03