先做一件事:确认后台到底有没有收到
WordPress 表单邮件收不到,绝大多数人的反应是「换个插件」。但问题很少出在插件上——WPForms、Contact Form 7、Fluent Forms 用的都是同一套发信机制,一条询盘从点击提交到进你邮箱要过五段,任何一段断了,现象都一样。
所以排查的顺序不是从插件开始,是从中间切开:
| 后台有没有这条记录 | 说明断在哪 | 往哪查 |
|---|---|---|
| 有 | 提交成功了,断在「发信」之后 | 第三、四、五段 |
| 没有 | 断在「提交」之前 | 第一、二段 |
这一步能省掉一半时间。但有个前提:你的表单插件得存条目。多数免费版并不存(Contact Form 7 本身不存,WPForms Lite 也不存),这时候判断不了,只能直接做一次提交测试。
一条询盘的完整链路
| 段 | 发生什么 | 失败的表现 |
|---|---|---|
| 一 | 访客填完表,点提交 | 页面没反应,或原地刷新 |
| 二 | 表单验证通过,写进数据库 | 提示成功,但后台查不到 |
| 三 | 生成邮件,交给发信服务 | 后台有记录,邮箱没有 |
| 四 | 邮件送达对方服务器 | 进了垃圾箱,或被直接拒收 |
| 五 | 有人看到并回复 | 邮件在,但没人管 |
下面逐段说。每一段给一个能自己动手做的判断。
断点一:表单没提交成功
现象是页面没反应、原地刷新、或者一直转圈。
| 原因 | 怎么确认 |
|---|---|
| 必填项太多,访客放弃 | 看表单后台的提交数 vs 页面访问数 |
| 验证码拦截了真人 | 临时关掉验证码,自己提交一次 |
| 缓存插件把 JS 压缩合并坏了 | 临时停用缓存,再提交一次 |
| 安全插件拦了 AJAX 请求 | 浏览器控制台看请求是否 403 |
| 主题或另一个插件抢了 submit 事件 | 换默认主题试一次 |
浏览器控制台(F12 → Network)里点提交,看有没有一个 POST 请求。没有请求 = 前端就断了,与发信无关。
断点二:提示成功,但后台查不到
这一类比较隐蔽,尤其是插件不存条目的时候——你以为成功了,其实什么都没留下。
| 原因 | 说明 |
|---|---|
| 插件不存条目 | 免费版常见。换个存条目的插件,或加一个存库插件 |
| 数据库表损坏 | 后台「工具 → 站点健康」会提示 |
| 提交被反垃圾规则静默丢弃 | 蜜罐字段误判真人也会丢 |
| 多站点/多语言插件写错了表 | 只在多语言站出现 |
判断办法:用插件自带的「测试提交」功能,或直接在新开的无痕窗口提交一次,立刻看后台。如果没有测试功能,就去数据库里查表单插件对应的表有没有新增行。
断点三:邮件没发出去
这一段出现得频繁,误解也集中在这里。
WordPress 默认用 PHP 的 mail() 函数发信。这个函数的问题是:它不验证发件人身份,也不负责送达。国内主机常常直接禁用它,国外主机则因为缺少发件域认证被判为垃圾邮件来源。结果是——邮件发出去了,但对方服务器在门口就扔了,你这边什么都看不到。
结论很简单:不要用 mail(),配 SMTP。
| 做法 | 适合谁 | 代价 |
|---|---|---|
| 域名邮箱 + SMTP(腾讯企业邮、阿里企业邮) | 国内运营团队 | 免费额度够用,配置十几分钟 |
| Google Workspace / Microsoft 365 | 团队已在用 | 按账号付费,送达率稳定 |
| 事务邮件服务(Amazon SES、Mailgun、Brevo) | 询盘量大、要投递日志 | 按量计费,能看到每封信的状态 |
配好之后,在 SMTP 插件里点一次「发送测试邮件」,收不到就说明配置本身有问题——这一步必须通过,再谈后面的。
断点四:发出去了,但进了垃圾箱
SMTP 配好只是「信出了门」,能不能进收件箱还看三条 DNS 记录:
| 记录 | 作用 | 没配的后果 |
|---|---|---|
| SPF | 声明哪些服务器可以代你的域名发信 | 容易被判伪造 |
| DKIM | 给邮件加密码学签名 | 无法证明未被篡改 |
| DMARC | 告诉对方 SPF/DKIM 不通过时怎么办 | 缺少策略,容易被降权 |
外贸站尤其要注意:发件域名要和网站域名一致。用 xxx@gmail.com 给客户回询盘,在 B2B 场景下可信度明显打折,也更容易被判垃圾。
验证办法:给自己常用的 Gmail 发一封测试询盘,打开「显示原始邮件」,看 SPF: PASS 与 DKIM: PASS 两行。有一行不是 PASS,就先去修 DNS。
断点五:邮件到了,但没人看见
这一段不技术,但丢的询盘不少。
| 情况 | 后果 |
|---|---|
收件人写成 info@ 但那个邮箱没人登录 | 询盘躺在没人看的地方 |
| 多个收件人用逗号分隔 | 部分邮箱客户端只认第一个 |
| 通知邮件被自动规则归档到「促销/更新」 | 永远想不起来去看 |
| 只有一个人收通知,他休假了 | 一周的询盘没人回 |
两个成本很低的动作:收件人设成组邮箱或多人,以及给询盘邮件单独设一条提醒规则(星标、置顶、或转发到企业微信/钉钉)。
五个断点对照表
| # | 断点 | 现象 | 先查什么 |
|---|---|---|---|
| 1 | 前端提交 | 页面没反应、无 POST 请求 | 控制台、验证码、缓存插件 |
| 2 | 写入数据库 | 提示成功、后台无记录 | 插件是否存条目 |
| 3 | 发信 | 后台有记录、邮箱没有 | 是否配了 SMTP |
| 4 | 送达 | 进了垃圾箱、原始邮件 SPF/DKIM 不过 | 三条 DNS 记录 |
| 5 | 被看见 | 邮件在,但没人回复 | 收件人是否有效、提醒规则 |
按这张表从上往下走,通常 30 分钟内能定位到具体一段。
补充:表单放在哪、留几个字段
链路修通了,接着要解决的是「有没有人提交」。同一张表单,放的位置不同,提交量差得不小。按效果排,位置优先级是这样的:
- 产品详情页,参数表下方。 客户看完规格,此刻的疑问很具体,这时候给他表单,转化率通常更高。
- 页眉固定的询盘按钮。 兜底用,不指望它带来大量询盘,但能救回「看了几页想联系却找不到入口」的那部分人。
- 页脚。 客户离开前看的那个位置,表单放这里更多是信任作用。
字段数量比表单外观更重要。必填只留两个:姓名、邮箱。 公司、国家、电话设为选填,其余(预算、交期、型号)放到二次沟通。每多一个必填项,提交率就往下掉一截。
两个容易被忽略的细节:一是提交后的确认文案,写清「我们会在 1 个工作日内回复」比只弹一个「谢谢」有用;二是给一个附件上传字段,外贸客户常要发图纸和规格书,没有这个字段,他只能另发一封邮件。
防垃圾邮件不要叠两层。蜜罐字段(隐藏的 honeypot)能挡掉大部分机器人,再叠加验证码会明显影响真人提交。两个都上的站,通常换来的是更多垃圾和更少询盘。
这件事属于维护,不属于建站
询盘链路常常出问题的时刻,不是上线那天,是半年之后换了 SMTP 服务商、或者插件自动更新之后。
它不会报错,只会安静地不再转发。所以它应该被放进维护清单:每周看一次表单条目数与邮箱收到数是否对得上,每月自己提交一次测试询盘。
这件事的清单和频率,写在 WordPress 网站维护与托管 里;表单插件怎么选,见 WordPress 联系表单插件。