Tmpkey

TMPKEY / 收信实验笔记

测通一封 Wi-Fi 验证邮件,
不只看验证码

信到了,只完成了第一段。把验证与放行继续跑完,再用同一套记录解释:究竟是哪一段出了问题。

11 分钟阅读 投递测试
01 收件可见 02 验证通过 03 网络放行

把成功拆成三个结果

公共 Wi-Fi 门户的邮件测试,不能停在“验证码已收到”。收件箱出现邮件、门户接受验证码或链接、原设备获得联网权限,是三个独立结果。第一项通过,后两项仍可能因令牌过期、会话丢失或网关策略失败。

先与开发、运营约定验收口径:邮件在哪个时间窗口内可见,验证成功由哪个服务事件确认,放行后访问哪个受控 HTTPS 测试页。不要仅凭门户出现“成功”字样判断已经联网;该页面可能来自缓存,而网关尚未更新授权。

为每轮测试隔离地址与会话

在测试环境或获得授权的网络进行操作。每个独立用例使用新地址,记录用例编号与设备会话;只有重发、重复点击等连续性用例,才沿用原地址。不要使用真实住客邮箱、房号、订单或身份证件填充测试数据。

打开Tmpkey 临时收件台后,确认显示的是实际地址与倒计时,而不是两封演示信。保留同一浏览器的收件凭证;换浏览器不会自动得到原箱。若门户未放行导致收件页打不开,先准备可用的移动数据连接,参照放行前如何打开匿名收件箱区分网络阻断与投递问题。

先建矩阵,再增加组合

用一条正常路径建立基线,再逐项改变变量。设备系统与版本、浏览器类型、网络是否已放行、验证方式都要写明;不要在一次失败后同时换地址、换设备、换浏览器,否则无法定位差异。

最小回归集:每行单独记录三个结果
用例 设备与浏览器 网络与验证方式 重点验收
正常收码 手机完整浏览器 门户待放行;手动输入码 可收信,原会话通过并放行
系统小窗 系统 Wi-Fi 登录窗口 待放行;邮件链接 跳出小窗后不会丢失绑定
异机收信 电脑登录;手机收信 两条网络;链接与验证码分别测 按声明的设备绑定策略处理
连续重发 同设备、同浏览器会话 同地址;连续请求 新旧码规则、乱序与限流一致
令牌过期 保留原会话 邮箱仍有效;门户令牌过期 拒绝旧令牌并提供重新申请入口
地址过期 完整浏览器 邮箱已过期;重新请求发码 识别收件地址失效,不误判渲染错误

在这组基线上补充目标客群常用的 iOS、Android 与桌面版本。隐私浏览、禁用存储、语言切换可作为扩展项;实际支持范围应由产品约定,不必盲目遍历所有组合。

给到达时间留下三个时间点

记录 T0:点击发码;T1:门户服务接受请求;T2:收件台首次可见邮件。T1−T0 包含前端与请求处理,T2−T1 包含排队、传输和收件展示,不能把两者统称为“邮件服务器慢”。接口返回成功也不等于已经送达。

客户端与服务器统一时区并校准时钟,优先用请求标识关联日志。收件台轮询会让首次可见时间晚于真实入站时间,T2 应注明是“界面观察值”;有权限时再用投递日志核对入站时刻,不用邮件 Date 字段代替接收时间。

重复多轮,分别记录中位数、慢样本与失败比例。阈值依据门户承诺和验证码寿命制定,不给所有网络套一个固定秒数。

检查正文,不只确认六个数字

主题应说明当前用途,发件地址应来自预期域名;显示名称相同不代表来源相同。SPF、DKIM、DMARC 的判断需要完整邮件头或投递日志,不能只看一个发件人徽标。

  • HTML:关闭远程图片后,验证码、有效期和安全提示仍可读;窄屏不横向溢出,深浅模式有足够对比。
  • 纯文本:代码与链接完整,没有残留标签;换行不截断代码,复制时不夹入不可见字符。
  • 内容一致:两种正文的操作目的、代码和期限相同,翻译版本不混入另一语言的说明。

临时收件台可以帮助观察显示,但不一定提供原始 MIME 或双正文切换。需要确认两种内容都已发送时,检查自有发送日志、原始邮件或受控测试客户端,不以“页面看起来正常”推断纯文本部分存在。

重发时,把顺序打乱再测一次

连续请求两次,按请求编号区分 A、B,再分别尝试旧码与新码。不能按收件列表顺序推断哪个更新:队列延迟可能让 A 比 B 晚到。若规则是“仅最新码有效”,前端提示、服务校验与邮件说明应一致;其他策略同样需要明确声明。

在受控环境检查重复提交、超出频率与冷却结束后的恢复。限流必须有服务端约束,不能只让按钮变灰;网络超时也不能直接宣称“没有发送”,因为后台可能已接受请求。记录实际结果,避免无节制重试触发真实网络的滥用防护。

分别测邮箱与门户令牌过期

Tmpkey 临时邮箱默认有效 3 小时;门户验证码或验证链接的寿命由门户另行决定。邮箱还剩两小时,几分钟前发出的令牌也可能已经过期;邮箱续期不会更新门户令牌。

至少拆成两个用例:邮箱有效但令牌过期,预期拒绝验证并可重新申请;邮箱过期但门户令牌尚在声明期限内,检查门户自己的处理规则,不能假定地址失效会自动撤销已签发令牌。还应覆盖令牌到期前后边界、重复使用及服务端时间校验。

缩短 TTL 的测试配置仅用于隔离环境,并记录与生产的差异。临时邮箱真实销毁边界仍需单独观察,不用改手机时钟假装服务器已过期。

续期保留地址,换址结束旧箱

每次续期追加 3 小时,单个邮箱从创建起最长 24 小时,最终以服务返回的到期时间为准。测试时核对地址不变、原信仍在、倒计时更新;接近上限时也不能预期再完整增加 3 小时。

更换地址则创建新的默认 3 小时邮箱,并销毁旧邮箱。先结束当前用例、脱敏保存必要证据,再更换;不要在等待邮件途中换址,然后把旧地址收不到信算作投递故障。新地址也不会自动改写门户之前保存的收件目标。

让证据能复现,但不能被拿来登录

每条记录包含:用例编号、环境与构建版本、设备与浏览器版本、网络状态、验证方式、脱敏地址、请求标识、三个时间点、预期与实际结果。分别勾选“收件”“验证”“放行”,不要只填一个通过或失败。

提交缺陷前,检查四处泄露点

  • 截图遮住完整邮箱、有效验证码、二维码和住客资料。
  • HAR 与请求日志移除 Authorization、Cookie、邮箱 token 及链接查询密钥。
  • 复现步骤写状态与操作,不附仍有效的验证链接。
  • 证据存入限权位置,按团队期限清理;不要上传公共工单。

需要关联同一地址时使用用例内代号或受控散列,不保留完整凭证。销毁测试邮箱不会撤回工单截图、下载文件或外部系统副本,这些要另外清理。

临时邮箱不是投递覆盖率报告

一次成功只说明这个时间、这条路径与这个收件域的结果。它不能代表 Gmail、Outlook、企业邮箱的垃圾分类、信誉策略或收件展示。上线前仍应使用获得授权的真实邮箱样本,检查各提供商表现,并建立生产投递、退信与验证转化监控。

门户可能明确拒绝一次性地址,应记录为地址接受策略,不绕过限制。需要实名核验、付款通知、住宿变更、账号找回或长期客服联系时,不应用会销毁的地址;匿名邮箱也不隐藏网络来源,更不能替代安全审计。

下一轮:先收信,再决定是否长期保留

短期测试,用一个独立地址跑完整条链路。跨天回归需要稳定地址时,可评估长期转发别名:来信转到自己的邮箱,配置与近 30 天存档独立管理。转发会增加链路,不能把它的延迟直接与临时收件结果混为一组。

面向实际使用者的门户填写步骤,见酒店、机场与咖啡店上网邮箱指南;数据处理范围见隐私政策。

拿一把测试钥匙,跑完三个检查点

先确认真实来信,再检查门户验证与原设备放行。别让“收到验证码”替整条流程签字。