收件箱
返回开发者与 QA

邮件到达只是中点,不是终点

如何从注册表单一直测试到邮箱真正完成验证

把注册验证当成状态迁移:新地址、当前验证邮件、验证动作,以及最终真正变成verified的账号状态。

约 8 分钟

验证邮件出现并不代表注册流程已经正确。链接可能指向错误环境,旧邮件可能被误用,backend也可能根本没有更新用户状态。可靠测试要沿着同一个identity从表单走到最终verified状态,并证明收到的消息属于当前尝试。

测试完整状态机

  1. 1

    从未注册地址开始

    避免把duplicate或resend行为当成首次注册。

  2. 2

    只提交一次注册

    记录identity、locale和环境。

  3. 3

    匹配当前邮件

    核对收件人、时间、host和code/token。

  4. 4

    走公开验证流程

    不要直接改数据库状态。

  5. 5

    验证最终状态

    确认访问规则也真正按verified状态改变。

重要负向场景

场景断言捕获问题
旧邮件不能验证错误尝试false positive
错误环境staging不跳production环境混淆
过期安全失败并可恢复延迟使用
重复使用符合产品策略replay

验证属于identity state

OWASP把邮箱验证放在identity system中讨论,Auth0也允许根据email_verified控制访问。因此“请检查邮箱”的页面不是最终证据。

只有检查真实状态,才能发现邮件正确但backend transition错误的情况。

失败时保留的证据

  • 地址与环境
  • 注册后的response
  • 发件人、主题、时间
  • 隐藏secret后的verification host
  • 验证前后状态

注册验证测试只有在正确identity真正进入产品承诺的verified状态时才完成。邮件只是这次状态迁移的一部分证据。

需要一个干净的收件地址做手工邮件 QA?

使用 MailOnce 检查真实的注册、OTP、魔法链接、密码重置和通知邮件,无需把个人邮箱放进测试数据。

创建临时邮箱

来源与延伸阅读

用于支撑测试建议的安全资料和测试运行器一手文档。

继续测试

继续查看同一邮件测试问题空间中的下一个边界。