最危险的表单故障不是页面报错,而是用户看到“已提交”,企业却没有收到任何通知。线索无声丢失,团队往往过了几周才发现。
排查时不要反复给自己发测试邮件就下结论。应把链路拆成:浏览器是否提交、服务器是否保存、邮件服务是否接受、收件服务器是否投递、内部规则是否转发。
01 先确认咨询数据有没有进入系统
检查网络请求、后端日志、数据库或CRM记录。若数据根本没保存,问题在表单接口、校验、跨域、权限或脚本;若数据已保存,继续检查通知链路。
建议表单先可靠入库,再异步发通知。不能把“邮件发送成功”当作数据保存成功的唯一条件。

02 检查发送方式和发件身份
使用网站服务器本地mail函数往往缺少稳定认证,更适合接入可靠SMTP或事务邮件服务。发件地址应属于已验证域名,不要把用户填写的邮箱直接作为From。
用户邮箱可放在Reply-To,既便于回复,也减少冒用域名造成的投递问题。
邮件未送达的分段排查
| 环节 | 检查证据 | 常见问题 |
|---|---|---|
| 表单前端 | 请求状态、错误信息 | 脚本失败、校验或跨域 |
| 应用后端 | 提交日志、任务队列 | 异常未捕获、队列堵塞 |
| 邮件服务 | 发送ID、接受/退信日志 | 凭证、额度、模板错误 |
| DNS认证 | SPF、DKIM、DMARC记录 | 记录缺失、重复或配置错误 |
| 收件系统 | 垃圾箱、隔离区、规则 | 企业网关拦截或自动归档 |
| 内部流程 | 转发、CRM、负责人 | 邮箱停用、规则指向旧员工 |

03 SPF、DKIM和DMARC分别解决什么
SPF声明哪些服务器可代表域名发送;DKIM为邮件添加可验证签名;DMARC定义认证失败时的处理和报告。三者配合能提高域名可信度。
DNS记录语法和服务商要求不同,修改前应查看当前邮件供应商文档。避免添加多个冲突SPF记录。
04 “服务商接受”不等于“收件人看到”
事务邮件平台返回成功,通常只表示已接收发送任务。还要看Delivered、Bounced、Deferred、Complaint等事件。
企业邮箱可能把邮件放进隔离区,用户在普通垃圾箱看不到。需要管理员检查网关和安全策略。

05 建立双通道和失败告警
高价值表单可同时写入CRM或后台,并通过邮件、企业IM等渠道通知。邮件失败时自动重试并告警,不能依赖人工偶然发现。
对用户显示提交编号或确认邮件,让用户知道请求已被系统记录。不要在页面暴露内部错误详情。
06 上线后做持续监测
定期从不同邮箱域、设备和网络进行端到端测试;监测发送失败率、退信率、延迟和队列积压。
更换域名、邮箱供应商、DNS或网站主机后,应重新验证整条链路。
常见问题
表单显示成功,为什么后台没有记录?
可能前端只显示了成功提示,接口实际失败或未保存。必须检查网络请求和服务端日志。
用户邮箱可以直接作为发件人吗?
不建议。应使用已认证域名地址作为From,把用户邮箱放在Reply-To。
SPF配置后多久生效?
取决于DNS缓存和TTL,通常需要等待传播,并用检测工具确认实际查询结果。
邮件进垃圾箱该怎么解决?
检查认证、发件域信誉、内容、链接、发送频率和收件方规则,不能只让用户“加白名单”。
是否需要保留所有表单内容?
按业务和隐私原则只保存必要内容,设置访问权限和保留期限。