跳至正文
WordPress 与 WooCommerce · Google SEO

WordPress 邮件发不出去:DNS 要配哪些记录

// / / 光算科技

邮件发不出去,先分清三种情况:根本没发出去、发出去被拒、发出去了进了垃圾箱。域名侧的 DNS 记录只解决第一类问题的一部分——你的服务器有没有被允许代表这个域名发信——它不决定收件箱。

三种失败,三种查法

现象可能卡在哪一段先查什么
后台提示发送成功,对方没收到投递之后收件方的垃圾箱、有没有退信通知
后台直接报错,发不出去发信通道通道的认证信息、是否被限流
只有某个发信地址发不出去域名授权这个域名该有的记录是否齐全
换主机后所有邮件都不通记录与通道记录是否随域名保留、通道是否要重新验证

把现象先归到哪一类,比直接去改 DNS 更快。第三行和第四行是同一类问题的两种表现:域名换了主机之后,网站文件迁过来了,邮件相关的授权和通道验证往往没跟着走。

邮件链路的四个判断点:主机是否报发送成功、外部邮箱是否真的收到、发信域名是否已获授权、通知是否有人查看
原创示意:图中为从主机到收件箱的四段判断链,每段标注一个可以自己执行的核对动作,不是真实后台截图或数据。

域名侧要配哪几类记录

记录类型作用值从哪来
接收记录(MX)指定由哪台服务器接收发到这个域名的邮件邮件服务商或主机商
发信授权(SPF)声明哪些服务器被允许代表该域名发信邮件服务商生成
邮件签名(DKIM)用一对密钥给邮件签名,收件方据此验证邮件服务商生成公钥并给出对应写法
验证失败的处理策略(DMARC)声明验证不通过的邮件如何处理,并提供报告地址你定策略,服务商给写法
发信子域不少主机把发信放在子域上,与网站域名分开需向服务商确认是否需要

这里刻意不列示例字符串。不同服务商的写法不同,抄错一个字符比不写更糟;请让服务商把记录名、记录值和用于验证的地址直接给你。这三类记录的语法不是某家服务商的私有格式,各有对应的公开规范:发信授权由 SPF 的规范文档定义,邮件签名由 DKIM 的规范文档定义,验证失败时的处理声明由 DMARC 的规范文档定义,DNS 记录类型与参数的登记处由 IANA 维护。按规范生成的写法不会有歧义;服务商给的写法如果与规范不一致,以规范为准再去找服务商核对,而不是反过来迁就它。

配齐了也不等于一定进收件箱

这一点必须写清楚:记录配齐只说明你的发信服务器获得了授权,不构成任何送达保证。送达还取决于收件方的过滤规则、发件地址的声誉、邮件内容本身以及发信频率。另外,搜索引擎不处理邮件投递,搜索侧的垃圾政策针对的是搜索结果里的内容,与邮件能否进收件箱是两件事。

WordPress 这一侧:发信调用在官方函数与 API 参考里有完整说明,讲的是参数、过滤器和返回值的含义,WordPress 的函数与 API 参考并没有对送达率作任何承诺,官方文档里也找不到"配好记录就一定进收件箱"这种说法。想换发信通道,正确做法是挂钩子做一个插件,而不是改核心文件;WordPress 插件手册把钩子、动作、过滤器和数据校验列为基本内容,也是判断一个插件靠不靠谱的第一课:它有没有用钩子接入、有没有做输入校验。

什么时候不需要这些记录

  • 用第三方表单收集并发信。发信方是第三方的话,你可能根本不需要这些记录,先确认到底是谁在发信。
  • 站点只收不发。这种情况主要关心接收记录。
  • 还没有企业邮箱、只用主机自带的发信地址。此时能用的选择更少,也更容易被限流,值得先和主机商问清方案再动手。
  • 域名刚注册不久、邮件服务商还没审核通过。等待期间可以用别的通道过渡,别把询盘押在一条还没验证的链路上。

换主机或换域名时,邮件相关的东西最容易漏。WordPress 网站换托管商,企业邮箱和询盘通知会跟着迁吗专门讲这一点;WordPress 托管报价怎么看里也提到,迁移相关的工作应该在报价阶段就问清楚包含哪些。

怎么验证邮件链路是通的

  1. 按服务商给的那个验证地址发一封测试邮件,等它那边确认收到。这是最基础的一步,很多站从没做过。
  2. 在服务商后台或 DNS 管理界面看这几条记录的状态,逐条确认已经生效,而不是只确认"填过了"。
  3. 用两个不同服务商的外部邮箱各收一次,避开你自己的公司邮箱——公司内部往往有白名单和过滤器,会掩盖问题。
  4. 核对发信地址的域名与网站域名是否一致,前台留的邮箱与后台通知邮箱是否一致。
  5. 把这些步骤写进换主机和换域名的检查清单,作为每次迁移的固定动作。

邮件这件事的可靠做法很朴素:记录由谁提供、链路分段验证、每段都能自己测一次,而不是相信"应该没问题"。