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

iRedMail无法与外部服务器互发邮件问题求助

解决iRedMail无法收发外部邮件的实操步骤

嘿,你这情况很典型——内部互发正常,说明本地邮件系统本身没毛病,问题肯定出在外部连通、DNS验证或者端口配置上,咱们一步步排查:

一、先搞定基础网络连通性

  • 先测服务器能不能连外网邮件服务器:跑个ping gmail-smtp-in.l.google.com,如果ping不通,先检查服务器的防火墙、路由,或者是不是VPS服务商给你封了出站网络。
  • 测试邮件端口能不能走通:用telnet smtp.gmail.com 587或者nc -zv smtp.gmail.com 587,看看25、587、465这几个SMTP常用端口能不能建立连接。要是25端口连不上,十有八九是ISP默认封了25(很多VPS都这么干),要么联系ISP解封,要么改Postfix用587端口发邮件。
  • 入站端口也要测:找个外部机器跑telnet 你的服务器公网IP 25,看看外部能不能访问你的25端口——这是接收外部邮件的关键。如果连不上,先检查你的端口转发是不是配置对了,再看服务器本地防火墙(比如ufw)有没有开25端口:ufw allow 25/tcp,然后ufw reload生效。

二、核对DNS记录的关键细节

你提到了MX、A、TXT记录,这几个地方错一个都不行:

  • MX记录:必须指向你的服务器公网域名(比如mail.yourdomain.com),优先级设个10就行,绝对不能指向内部私网IP,外部服务器根本找不到。
  • A记录:MX指向的那个域名,必须有对应的A记录解析到你的服务器公网IP,不能是localhost或者内部域名。
  • SPF记录(TXT类型):一定要包含你的服务器公网IP,比如写v=spf1 ip4:xxx.xxx.xxx.xxx -all,这样外部邮件服务器才会认你的邮件是合法来源,不会直接当垃圾拒收。
  • PTR反向解析:这个是很多人忽略的坑!你的服务器公网IP必须反向解析到你的邮件域名(比如mail.yourdomain.com),大部分主流邮件服务器(比如Gmail、Outlook)都会检查这个,不匹配直接拒收。这个得找你的IP服务商帮你设置,自己改不了。

三、检查iRedMail的核心配置

  • 打开Postfix的主配置文件/etc/postfix/main.cf:
    • 确认myhostname是你的公网邮件域名,不是localhost或者内部局域网域名。
    • mydestination里只留本地域名和localhost,别加外部域名,不然Postfix会把外部邮件当成本地邮件处理,自然发不出去也收不到。
    • relayhost留空就行,除非你专门用中继服务器发邮件。
  • 试试临时关闭Amavisd:有时候反垃圾规则太严会误杀外部邮件,跑systemctl stop amavisd,然后再测收外部邮件,如果能收到了,再去调Amavisd或者SpamAssassin的规则。

四、扒邮件日志找具体错误

日志是排查问题的黄金线索,去看/var/log/mail.log或者/var/log/mail.err:

  • 发不出去的话,日志里会有relay denied、connection refused这类明确的错误提示,照着提示改就行。
  • 收不到的话,日志里会显示rejected的原因,比如no reverse DNS(没设PTR)、SPF check failed(SPF记录错了)。

比如如果日志里出现550 5.7.1 Reverse DNS lookup failed,那不用想,就是PTR记录没配置对,赶紧找ISP处理。

五、做个实际收发测试

  • 发测试邮件:跑echo "这是测试邮件" | mail -s "测试" 你的外部邮箱地址,然后看日志有没有报错。
  • 收测试邮件:用Gmail、Outlook这类外部邮箱给你的iRedMail用户发邮件,然后去服务器日志和用户邮箱的收件箱、垃圾邮件箱里找。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:23:21