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

新手首次使用Sendmail遇邮件未送达:连接超时问题求助

排查Sendmail邮件无法送达(无退信、未进垃圾邮件)的问题

嘿,我来帮你搞定这个Sendmail邮件发不出去的问题!从你给出的信息来看,stat=Deferred: Connection timed out with alt4.gmail-smtp-in.l.google.com 大概率就是核心问题所在,咱们一步步拆解排查:

一、先确认Sendmail的基础运行状态

你已经用netstat -tuplen | grep 25确认了25端口开放,再结合netstat -ntlp | grep sendmail的输出,先确保Sendmail进程是监听在公共IP(比如0.0.0.0:25或者:::25)上,而不是只绑定127.0.0.1——如果只监听本地,那只能发内部邮件,往外发肯定不行。

二、深挖连接超时的原因

连接Gmail的SMTP服务器超时,常见的坑有这几个:

  • ISP封禁了出站25端口:很多运营商为了防垃圾邮件,会默认封掉普通用户的25端口。你可以用telnet直接测连通性:
    telnet alt4.gmail-smtp-in.l.google.com 25
    
    如果连不上(超时或者直接被拒),那基本就是ISP的锅。这种情况要么找运营商解封,要么改用SMTP中继(比如用Gmail自己的587/465端口,需要给Sendmail配置认证信息)。
  • DNS解析出问题:Sendmail发邮件得先解析对方的MX记录,你手动测一下Gmail的MX记录看看:
    dig gmail.com MX
    
    如果解析不到正常的记录(比如alt4.gmail-smtp-in.l.google.com这类),那得检查你的/etc/resolv.conf里的DNS服务器是不是配置错了。
  • 防火墙/安全组拦了出站流量:本地防火墙(比如ufw、iptables)或者云服务器的安全组,有没有禁止25端口的出站连接?你可以临时关防火墙测一下,或者查规则:
    # 用ufw的话看状态
    ufw status
    # iptables的话查规则
    iptables -L -n | grep 25
    
  • 邮件队列里藏着细节:看看mqueue目录里的待发邮件,用mailq命令能看到队列状态,再手动触发投递看详细日志:
    mailq
    sendmail -v -q
    
    这里的详细输出能帮你找到更具体的报错。

三、容易忽略的隐性问题

  • 反向DNS(PTR记录)缺失:Gmail这类大厂对发件服务器的PTR记录要求很高,如果你的服务器IP没有对应的PTR记录,邮件可能直接被丢弃,连退信都不给。你查一下自己IP的PTR:
    dig -x 你的服务器公网IP
    
    要是没结果,得找主机提供商帮你设置。
  • 邮件认证记录没配置:SPF、DKIM、DMARC这些记录如果没弄,Gmail可能直接把邮件丢进黑洞(而不是垃圾邮件)。先给域名加个SPF记录,把你的服务器IP包含进去,有条件再配DKIM和DMARC。

四、一步步测试的建议

  1. 先用telnet测Gmail的25端口连通性,确认网络通路;
  2. 跑mailq看队列,再用sendmail -v -q手动投递,盯着输出看细节;
  3. 检查DNS解析和反向PTR记录是否正常;
  4. 排查防火墙和ISP的端口封禁问题;
  5. 要是ISP确实封了25端口,就配置SMTP中继(比如用Gmail的SMTP,记得开应用密码,别用普通密码)。

要是按上面的步骤排查完还是有问题,把sendmail -v -q的详细输出、mailq的结果贴出来,咱们再精准定位!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:06:03