方案 v1.0 · 2026 年 7 月 28 日
邮件投递测试方案
这是一份测试方案,不是性能宣传。只有在固定发件方、时间戳、样本数和证据都记录完整后,TmpKit 才会发布实测投递率。在此之前,空白结果比虚构基准更诚实。
问题与测量单位
向新创建的 TmpKit 地址发送一封邮件时,系统能否接收邮件、让匹配的浏览器会话看到邮件,并正确渲染或下载各部分,同时保留诊断失败所需的证据?
测量单位:测量单位是一次邮件尝试。每次重发都必须使用新的尝试 ID,不能覆盖此前失败记录。
受控准备
- 使用全新 TmpKit 会话,准确记录界面显示的收件地址;不要使用个人或敏感邮件。
- 把发件设备和观察设备同步到可靠 UTC 时钟;发件方可提供时,记录到毫秒。
- 只使用你控制的发件账号,记录服务商、发件域、Message-ID、主题标记、附件名和网络条件。
- 保持浏览器标签页打开,除非测试项要求否则不手动刷新;记录同意状态和视口,因为它们可能影响脚本与渲染。
- 每个发件方与邮件类型至少分时段运行三次再汇总;小样本只能称为诊断样本,不能代表总体。
必测矩阵
| 编号 | 场景 | 通过证据 | 失败分类 |
|---|---|---|---|
| DEL-01 | 纯文本邮件 | 正确会话中出现主题标记与纯文本正文。 | 接收、路由、可见性或超时 |
| DEL-02 | 简单 HTML 邮件 | 文本和允许格式正常显示,脚本与主动表单不执行。 | 清理或渲染 |
| DEL-03 | 远程图片 | 图片在请求前隐藏,并通过同站图片代理加载。 | 隐私代理或渲染 |
| DEL-04 | 小型无害附件 | 出现附件元数据,下载字节的 SHA-256 与发件端一致。 | 解析、存储或下载 |
| DEL-05 | Unicode 发件人、主题与正文 | 字符可读,不出现替换符或乱码。 | 编码 |
| DEL-06 | 带 SPF/DKIM/DMARC 的发件方 | 原始邮件头可用于分析,记录结果与收到的头部证据一致。 | 认证证据 |
| DEL-07 | 短时间连续两封邮件 | 两个唯一 Message-ID 各出现一次,并按接收时间倒序排列。 | 去重或排序 |
| DEL-08 | 会话到期边界 | 到期前匹配的近期邮件可见,到期后 API 不再返回收件内容。 | 到期控制 |
计时定义
- send_at:发件方接受或提交邮件的时间,不是打开草稿的时间。
- first_seen_at:首次在 TmpKit UI 或 API 观察到邮件的时间。
- delivery_observation_ms = first_seen_at − send_at。它同时包含发件排队、DNS、SMTP、存储、轮询和时钟误差,不等于纯 SMTP 延迟。
- 诊断运行超时阈值为 120 秒。邮件之后到达仍需记录,但按预设阈值该次尝试属于超时。
失败分类
- 发件方拒绝:发件服务商在 TmpKit 接收前拒绝或退信。
- SMTP 接收失败:TmpKit 接收端拒绝或丢弃事务;可获得时保留 SMTP 状态。
- 路由/存储失败:SMTP 看似成功,但匹配的数据库或正文记录不存在。
- 可见性失败:邮件已存储,但正确的活动会话无法列出。
- 渲染/下载失败:邮件已列出,但清理后的 HTML、文本、图片代理或附件行为错误。
- 无法判定:时钟、发件日志、Message-ID 或收件证据不足,不得改标为通过。
每次尝试的最小证据
- attempt_id、test_case_id、UTC send_at、UTC first_seen_at 和计算后的观察毫秒数
- 发件服务商/域名、收件域名、匿名化收件标记、RFC Message-ID 和主题标记
- 发件结果或 SMTP 状态、收件结果、渲染结果,以及适用时的附件哈希
- 浏览器/版本、视口、网络备注、会话到期状态和操作员说明
隐私与安全发布
只使用合成内容。公开结果必须哈希或遮盖邮箱本地部分,移除复现不需要的 IP 和路由标识,绝不能发布认证令牌、私有邮件头或真实通信。原始观察只保留到足以验证汇总结果为止。
何时可以发布结果
报告必须列出运行日期、发件方组合、样本数、方案版本、超时阈值、排除项、缺失行和计算方法。百分比旁同时提供计数,并保留各发件方失败明细。除非另一服务使用完全相同的受控邮件、时间窗口、网络和定义,否则不得做横向比较。