Debian系统sendmail无法向Gmail发送邮件的问题排查求助
Debian系统sendmail无法向Gmail发送邮件的问题排查求助
兄弟,看了你的退信内容,问题其实已经明明白白摆在那儿了——Gmail的IPv6反垃圾邮件机制把你的邮件给拦下来了!
先给你拆解下退信里的关键错误信息:
550-5.7.1 [ (IPv6 Address) ] Our system has detected that this message does not meet IPv6 sending guidelines regarding PTR records and authentication.
这句话直接点出核心问题:你的服务器用IPv6发邮件时,没有配置合法的PTR反向解析记录,同时可能缺少邮件认证(SPF/DKIM/DMARC),不符合Gmail的IPv6发送规范。
下面给你分步解决的方案:
临时应急方案:禁用sendmail的IPv6支持
如果你现在急需发邮件,可以先暂时让sendmail只用IPv4发送,避开IPv6的限制:
- 打开sendmail的主配置文件
/etc/mail/sendmail.cf - 找到包含
DAEMON_OPTIONS的行,把里面的Family=inet6删掉,或者改成Family=inet(只启用IPv4) - 重启sendmail服务:
systemctl restart sendmail - 用
sendmail -v 你的测试@gmail.com发一封测试邮件,看看能不能成功投递
彻底解决IPv6合规问题(推荐)
如果想长期用IPv6发邮件,必须搞定以下两个关键配置:
1. 配置IPv6的PTR反向解析记录
- 联系你的服务器/VPS提供商,要求给你的IPv6地址配置PTR记录,指向你的服务器域名(比如退信里的
WS301.WS301.intern) - 注意:PTR记录的反向解析结果必须和你的服务器域名正向解析(A/AAAA记录)匹配,否则Gmail依然会拒收
2. 配置邮件认证机制(SPF/DKIM/DMARC)
- SPF记录:在你的域名DNS管理后台添加一条TXT记录,内容类似
v=spf1 ip6:你的IPv6地址 -all,明确授权这个IPv6地址可以代表你的域名发邮件 - DKIM签名:给sendmail配置DKIM,生成密钥对后,把公钥添加到域名的DNS TXT记录里,确保sendmail发送邮件时自动带上DKIM签名(具体配置可以参考sendmail的DKIM插件文档)
- DMARC记录:添加一条TXT记录,比如
v=DMARC1; p=quarantine; sp=quarantine; rua=mailto:dmarc@你的域名,指导收件方如何处理未通过认证的邮件,同时能收到认证失败的报告
额外检查点
退信里显示邮件从localhost [127.0.0.1]发起,你可以检查sendmail的MASQUERADE_AS配置,确保邮件是以你的服务器域名(而非localhost)的身份发出,这也能提升邮件的可信度。
测试的时候记得用sendmail -v命令,它会输出详细的SMTP交互日志,能帮你快速定位后续的问题~
备注:内容来源于stack exchange,提问作者Troyer05
相关产品推荐
相关产品推荐

