先完成左侧四项
结论会指出最先值得检查的一层,并给出下一步证据。它不会假装直接读取你的发件系统。
- 复制本轮使用的完整收件地址。
- 保留发送时间、消息编号与响应码。
- 记录是否能看到主题、HTML 和纯文本正文。
投递排查实验台
不要一开始就反复重发。先确认地址,再看发送任务和服务商响应,最后检查收件轮询与正文渲染。
开始逐项排查结论会指出最先值得检查的一层,并给出下一步证据。它不会假装直接读取你的发件系统。
五层证据链
每一层都要找到可观察证据,再进入下一层。这样能避免把地址问题误判成模板问题。
重新从当前页面复制地址,检查 @ 前后是否完整、临时箱是否仍在倒计时内。换地址后,旧令牌和旧收件地址不应继续作为测试目标。
证据:完整地址与有效期确认业务动作确实触发了邮件任务,而不是只写入待处理队列。核对环境变量、队列消费者、模板选择和收件人参数。
证据:任务 ID 与执行日志查看 SMTP 或邮件服务商返回的响应。接受只表示下一跳已接收,不等于最终进入收件箱;拒绝码则通常已给出方向。
证据:消息 ID 与响应码等待一个轮询周期后手动刷新。若同一箱的其他邮件能出现,问题更可能位于单封邮件或上游投递,而非页面连接。
证据:刷新时间与邮件计数列表有主题但详情为空时,分别检查 html_body 与 text_body。HTML 模板错误、过大的远程资源或危险脚本不等于邮件没有抵达。
证据:主题、发件人和正文原字段快速判断
| 现象 | 先查 | 再查 |
|---|---|---|
| 任何邮件都不到 | 地址有效期与发送任务 | 服务商响应、DNS 与限流 |
| 只有某模板不到 | 模板任务与收件人参数 | 内容策略、附件大小 |
| 列表有信但详情空 | HTML/纯文本字段 | 模板语法与阅读隔离 |
| 到达明显延迟 | 队列等待与服务商事件 | 收件轮询与网络状态 |
最小复现
用固定主题、纯文本一句话和唯一事件编号发送到新建地址。若最小邮件能到,再逐步加回 HTML、图片、附件和业务变量。
例如 staging / commit hash
统一使用 UTC 或注明时区
隐藏令牌,不在工单粘贴验证码