邮件发不出去,先分清三种情况:根本没发出去、发出去被拒、发出去了进了垃圾箱。域名侧的 DNS 记录只解决第一类问题的一部分——你的服务器有没有被允许代表这个域名发信——它不决定收件箱。
三种失败,三种查法
| 现象 | 可能卡在哪一段 | 先查什么 |
|---|---|---|
| 后台提示发送成功,对方没收到 | 投递之后 | 收件方的垃圾箱、有没有退信通知 |
| 后台直接报错,发不出去 | 发信通道 | 通道的认证信息、是否被限流 |
| 只有某个发信地址发不出去 | 域名授权 | 这个域名该有的记录是否齐全 |
| 换主机后所有邮件都不通 | 记录与通道 | 记录是否随域名保留、通道是否要重新验证 |
把现象先归到哪一类,比直接去改 DNS 更快。第三行和第四行是同一类问题的两种表现:域名换了主机之后,网站文件迁过来了,邮件相关的授权和通道验证往往没跟着走。

域名侧要配哪几类记录
| 记录类型 | 作用 | 值从哪来 |
|---|---|---|
| 接收记录(MX) | 指定由哪台服务器接收发到这个域名的邮件 | 邮件服务商或主机商 |
| 发信授权(SPF) | 声明哪些服务器被允许代表该域名发信 | 邮件服务商生成 |
| 邮件签名(DKIM) | 用一对密钥给邮件签名,收件方据此验证 | 邮件服务商生成公钥并给出对应写法 |
| 验证失败的处理策略(DMARC) | 声明验证不通过的邮件如何处理,并提供报告地址 | 你定策略,服务商给写法 |
| 发信子域 | 不少主机把发信放在子域上,与网站域名分开 | 需向服务商确认是否需要 |
这里刻意不列示例字符串。不同服务商的写法不同,抄错一个字符比不写更糟;请让服务商把记录名、记录值和用于验证的地址直接给你。这三类记录的语法不是某家服务商的私有格式,各有对应的公开规范:发信授权由 SPF 的规范文档定义,邮件签名由 DKIM 的规范文档定义,验证失败时的处理声明由 DMARC 的规范文档定义,DNS 记录类型与参数的登记处由 IANA 维护。按规范生成的写法不会有歧义;服务商给的写法如果与规范不一致,以规范为准再去找服务商核对,而不是反过来迁就它。
配齐了也不等于一定进收件箱
这一点必须写清楚:记录配齐只说明你的发信服务器获得了授权,不构成任何送达保证。送达还取决于收件方的过滤规则、发件地址的声誉、邮件内容本身以及发信频率。另外,搜索引擎不处理邮件投递,搜索侧的垃圾政策针对的是搜索结果里的内容,与邮件能否进收件箱是两件事。
WordPress 这一侧:发信调用在官方函数与 API 参考里有完整说明,讲的是参数、过滤器和返回值的含义,WordPress 的函数与 API 参考并没有对送达率作任何承诺,官方文档里也找不到"配好记录就一定进收件箱"这种说法。想换发信通道,正确做法是挂钩子做一个插件,而不是改核心文件;WordPress 插件手册把钩子、动作、过滤器和数据校验列为基本内容,也是判断一个插件靠不靠谱的第一课:它有没有用钩子接入、有没有做输入校验。
什么时候不需要这些记录
- 用第三方表单收集并发信。发信方是第三方的话,你可能根本不需要这些记录,先确认到底是谁在发信。
- 站点只收不发。这种情况主要关心接收记录。
- 还没有企业邮箱、只用主机自带的发信地址。此时能用的选择更少,也更容易被限流,值得先和主机商问清方案再动手。
- 域名刚注册不久、邮件服务商还没审核通过。等待期间可以用别的通道过渡,别把询盘押在一条还没验证的链路上。
换主机或换域名时,邮件相关的东西最容易漏。WordPress 网站换托管商,企业邮箱和询盘通知会跟着迁吗专门讲这一点;WordPress 托管报价怎么看里也提到,迁移相关的工作应该在报价阶段就问清楚包含哪些。
怎么验证邮件链路是通的
- 按服务商给的那个验证地址发一封测试邮件,等它那边确认收到。这是最基础的一步,很多站从没做过。
- 在服务商后台或 DNS 管理界面看这几条记录的状态,逐条确认已经生效,而不是只确认"填过了"。
- 用两个不同服务商的外部邮箱各收一次,避开你自己的公司邮箱——公司内部往往有白名单和过滤器,会掩盖问题。
- 核对发信地址的域名与网站域名是否一致,前台留的邮箱与后台通知邮箱是否一致。
- 把这些步骤写进换主机和换域名的检查清单,作为每次迁移的固定动作。
邮件这件事的可靠做法很朴素:记录由谁提供、链路分段验证、每段都能自己测一次,而不是相信"应该没问题"。