使用Gmail SMTP发送邮件时SPF记录配置导致Gmail收件拦截的问题咨询
看起来你遇到的问题确实和SPF配置相关,咱们一步步拆解分析:
首先明确你的核心场景:用自定义域名(trulymail.com)作为发件域名,通过Gmail的Web界面或smtp.gmail.com发送邮件,非Gmail域名收件正常,但Gmail收件被拦截,错误提示SPF验证失败。
先确认你的SPF记录本身是否正确
你当前的SPF记录 v=spf1 include:_spf.google.com -all 是完全符合需求的——因为所有发送请求都通过Google的邮件服务器,include:_spf.google.com 已经覆盖了Gmail所有的发送IP段(包括smtp.gmail.com和Web界面的服务器IP),结尾的-all也明确了只有这些来源的邮件才是合法的。
关于TXT记录的引号问题:你说的没错,当记录内容包含空格时,需要用引号包裹,你的写法是正确的。部分DNS提供商可能会自动处理引号,但手动加上也不会有问题,不用纠结这点。
为什么还是出现SPF验证失败?
结合错误提示里的IP(209.85.220.41),这个确实属于Google的邮件服务器IP段,理论上应该被_spf.google.com包含,那问题可能出在这几个地方:
DNS缓存未更新
DNS记录修改后需要等待TTL(生存时间)过期才能全网生效,Name.com的默认TTL可能是几小时甚至更久。你可以用命令nslookup -type=TXT trulymail.com或者dig trulymail.com TXT检查本地或公共DNS服务器是否已经获取到最新的SPF记录。如果查询结果还是旧的记录,那需要等待缓存刷新。存在多个SPF记录
SPF规则要求一个域名只能有一条SPF TXT记录,如果你的DNS里同时存在多条SPF相关的TXT记录(比如之前包含MX的旧记录没删除干净),会直接导致SPF验证失效。请登录Name.com后台,检查所有TXT记录,确保只有一条SPF记录存在。发件邮箱的Gmail配置问题
如果你是用自定义域名的邮箱(比如xxx@trulymail.com)通过smtp.gmail.com发送,需要先在Gmail账户中完成以下操作:- 添加该自定义域名邮箱作为“允许的发件人”
- 完成Gmail对该域名邮箱的验证(通常是发送验证邮件或添加验证TXT记录)
如果没有完成这一步,Gmail在发送时可能不会正确关联你的域名SPF,导致验证失败。
DKIM缺失的影响
错误提示里同时提到了DKIM未通过,虽然主要问题指向SPF,但Gmail对自定义域名发件的验证要求更严格,建议同时配置DKIM记录:- 登录Google相关后台(如果用的是Workspace直接在后台操作,普通Gmail需要通过域名验证入口)获取DKIM密钥
- 在Name.com的DNS中添加对应的TXT记录(格式通常是
google._domainkey作为主机名,内容为DKIM密钥)
验证SPF记录的小技巧
你可以手动确认你的SPF记录是否覆盖了错误里的IP:
- 先查询
_spf.google.com的TXT记录,会得到一系列IP段 - 检查209.85.220.41是否在这些IP段中(实际这个IP属于
209.85.128.0/17,确实在Google的SPF范围内)
总结
当前你的SPF记录内容是正确的,优先排查:
- DNS缓存是否刷新,记录是否已全网生效
- 是否存在多条SPF记录
- 自定义域名邮箱是否在Gmail中完成验证和发件人配置
如果这些都没问题,等待一段时间后再测试,或者尝试删除后重新添加SPF记录。
备注:内容来源于stack exchange,提问作者John




