开始之前,先留一条干净的基线
准备目标环境、可访问的发信日志和一个新的测试邮箱。不要使用真实客户姓名、身份证件、支付信息或生产验证码;如果流程会创建账号,先确认测试账号的清理权限。
地址的倒计时要覆盖本轮测试。如果目标网站拒绝临时邮箱,停止此路径,改用受控长期邮箱或平台指定的测试机制。
复制完整地址,确认环境
从临时收件箱复制地址,检查前缀、@ 和域名没有空格。把它填写到注册页,确认你正在操作预期的测试或预发布环境。
记录收件地址与本轮开始时间。不要在多个浏览器标签中同时换地址,否则容易把验证码发送到已经不再查看的邮箱。
只触发一次,观察发送端
提交注册或点击发送验证码后,记下时间与页面反馈。页面“发送成功”可能仅代表任务入队,不等于邮件已经抵达。
有日志权限时,核对收件地址、任务状态、发信服务返回的消息标识和 SMTP 结果。若提交请求本身失败,先修请求或限流问题,不要把责任直接归到收件箱。
在收件箱确认同一封邮件
收件列表会自动更新,也可以手动刷新。按主题、发件人和接收时间核对是否属于刚刚触发的请求,而不是先前到达的旧验证码。
如果没有来信,检查应用是否仍指向邮件沙箱,以及投递日志是否记录拒收、排队或退信。合理等待后再按目标系统的重发规则操作,不要连续重发造成多个代码交错。
提交最新验证码,核对状态转换
使用最新请求对应的有效验证码,确认注册状态从待验证变为已验证。成功提示之后再检查会话和用户资料,不要仅凭跳转页面判断成功。
在授权测试范围内,补测错误代码、过期代码和重复提交。预期结果是明确报错、不过量泄露账号信息,并且不会让一次性代码被重复使用。
清理测试数据,保留脱敏证据
删除或停用测试账号,按团队要求清理队列和测试记录。若需要持续使用账号,请在临时地址到期前更换到自己长期控制的邮箱,并验证新地址。
缺陷报告只保留必要的时间、错误类别和脱敏标识。不要贴出完整登录链接、仍有效的验证码或邮箱访问凭证。
让下一位同事能复现
一条记录对应一次发送请求,把发送、接收与验证分开记。下表是格式示例,不是系统实测数据,也不代表邮件的固定到达时间。
| 记录项 | 填写内容 | 排查价值 |
|---|---|---|
| 环境与版本 | 预发布 / 构建号 / 页面路径 | 避免不同环境结果混用 |
| 发送请求 | 触发时间、脱敏收件地址、请求标识 | 定位应用是否真正发起发送 |
| 投递结果 | 排队 / 服务接受 / 拒收 / 退信 | 区分发信端失败与等待 |
| 接收结果 | 收到时间、主题、发件域名 | 匹配具体的一次请求 |
| 验证结果 | 成功 / 失效 / 不匹配,不记录代码 | 验证业务状态与邮件状态是否一致 |
测试邮件收不到时,分三层看
请求没有出去
核对表单校验、接口错误和发送频率限制。应用未创建发送任务时,更换收件地址通常无助于解决问题。
服务尚未投递
检查队列与 SMTP 返回结果。退信与临时拒收不是同一种情况,先看错误类别再决定是否重试。
收到却无法验证
核对代码对应的账号、请求与有效期。重发后旧代码可能失效,不要把业务校验问题当成邮件丢失。