Ubuntu 18.04服务器发邮件至Gmail遭拒收,已配置PTR/SPF仍未解决
针对你遇到的Gmail退信(550-5.7.1认证失败)问题,我们一步步拆解排查,先从你已配置但可能存在疏漏的项入手:
1. 紧急修正SPF记录(大概率是核心问题)
你当前的SPF记录是v=spf1 include:_spf.google.com ~all,这里存在逻辑错误:include:_spf.google.com是允许Gmail的服务器发送你的域名邮件,但你的Ubuntu服务器是直接从自身IP发件,这个IP并没有被包含在SPF规则里。Gmail检查SPF时会判定这封邮件未通过认证,直接触发拦截。
修正建议:
- 如果你的服务器是唯一发件源,把SPF改成:
v=spf1 ip4:159.69.180.128 ~all - 如果同时有Gmail转发和自己服务器发件,改成:
v=spf1 ip4:159.69.180.128 include:_spf.google.com ~all
用命令验证SPF记录是否生效:
dig jaehnig.org TXT
确保返回的内容包含你修正后的SPF规则。
2. 修复DMARC记录的识别问题
你提到工具未识别DMARC记录,大概率是配置有误:
- 确认DMARC记录是添加在
_dmarc.jaehnig.org域名下,记录类型为TXT - 检查记录格式:你的规则
v=DMARC1; p=none; rua=mailto:postmaster@jaehnig.org是正确的,但要确保没有多余空格或中文符号(比如分号后面必须是英文空格) - 用命令验证:
dig _dmarc.jaehnig.org TXT
如果返回空或内容不符,说明DNS记录未生效,需要等待解析刷新(通常1-24小时),或者检查域名服务商的配置界面是否有格式错误。
3. 再次确认反向DNS(PTR)的准确性
虽然你说有双向记录,但再仔细核对一遍:
- 验证PTR记录:
dig -x 159.69.180.128
确保返回的PTR值是精确的nabo.jaehnig.org,没有拼写错误(比如少字母、域名后缀错误)
- 验证A记录:
dig nabo.jaehnig.org A
确保返回的IP是159.69.180.128,双向匹配是Gmail认可反向DNS的关键。
4. 关于DKIM的必要性
DKIM不是强制项,但它是Gmail反垃圾系统的重要加分项。你提到其他服务器没DKIM也能发,那可能是因为那些服务器的IP信誉更高,或者SPF/DMARC配置完全正确。如果前面的SPF和DMARC都修复后还是无法发件,建议补上DKIM:
- 在你的邮件服务器(比如Postfix)生成至少1024位的DKIM密钥
- 在DNS上添加对应的TXT记录(通常是
selector._domainkey.jaehnig.org格式,selector是你生成密钥时指定的名称) - 配置邮件服务器自动用DKIM密钥签名所有 outgoing 邮件
5. 检查邮件头的认证结果
发一封测试邮件到你自己的非Gmail邮箱(比如Outlook、Yahoo),查看邮件头:
- 找
Received-SPF字段,确认结果是pass - 如果配置了DKIM,找
DKIM-Signature字段和Authentication-Results里的DKIM结果
这些字段能直观告诉你哪项认证出了问题。
6. 检查IP的信誉
即使是3个月前更换的IP,也有可能被之前的使用者列入黑名单。用黑名单查询工具检查159.69.180.128是否在任何反垃圾邮件黑名单中,如果是,按照黑名单的指引申请移除。
内容的提问来源于stack exchange,提问作者Georg Jähnig




