如何选择用于质量保证的测试邮箱账户
临时收件箱适合人工注册和 OTP 验证检查。无需人工参与、涉及真实客户数据,或需要回复和附件的测试,则需要另一种测试收件箱。以下说明如何为每项测试选择合适的方案。
快速访问
什么是用于质量保证的测试邮箱账户?
测试邮箱账户,或称质量保证测试邮箱地址,是您的团队用来接收和检查自己应用程序所发送邮件的地址。手动、非敏感的注册和OTP检查可使用临时收件箱。需要保留邮件、回复或附件时,选择公司邮箱;当自动化测试必须在无人参与的情况下检查邮件时,选择SMTP沙盒或托管收件箱API。
Tmailor运营着这个博客,所以这里说明它的定位。Tmailor是一个免费的、仅接收的临时邮箱服务,支持网页、Android、iOS和Telegram机器人。它适合第一种情况:用户打开收件箱,触发注册,然后阅读收到的邮件。对于最后一种情况,独立的 Tmailor 临时邮件 API 允许自动化测试创建仅接收地址,并从代码中读取其消息。消息自到达后大约保留24小时,不接收附件,该地址也无法发送或回复。如果你对一次性收件箱还不熟悉,可以先了解临时 邮件的工作原理。
- 无需邮件到达(表单验证、测试数据、单元测试):使用保留的示例域名。
- 由人阅读邮件,且其中没有敏感内容:临时收件箱是最快的选择。
- 敏感数据、回复、附件或必须保留的证据:使用经批准的公司控制邮箱;只有当你的邮件系统和应用支持时,才添加加号标签。
- 无人值守:如果你能控制应用的发件邮件设置,使用SMTP捕集器;如果应用必须通过其常规服务商发送,则使用托管收件箱API。
手动与自动化邮件测试:决策树
四个问题决定一项检查需要哪种测试邮箱账户:邮件是否必须到达、由人还是代码读取、是否携带敏感数据,以及你是否能控制应用发送外发邮件的位置。
- 测试是否需要邮件到达? 格式检查、界面状态、测试数据和单元测试通常不需要。使用 example.com、example.org 或 example.net 的地址。这些域名保留用于文档和示例,因此不会有任何内容送达真实的人。避免随意编造域名,因为可能有人拥有它们。
- 测试 时是否有人阅读邮件? 冒烟测试、手动UAT、演示和探索性测试都有人参与。回归测试套件和CI任务通常没有。
- 如果由人阅读,其中是否有敏感内容? 真实的客户记录、凭证、受监管数据或必须作为审计证据保留的邮件,不应放入临时收件箱。请改用公司邮箱。如果答案是否定的,临时收件箱就足够了。
- 如果由代码读取,测试环境能否将邮件发送到测试SMTP服务器? 如果可以,SMTP捕集器会捕获每封邮件而不投递。如果不可以,因为应用必须通过其常规邮件服务商发送,则使用托管收件箱,由测试通过API读取。
下表并排比较这五个选项。
| 选项 | 最适合 | 邮件读取方式 | 注意 |
|---|---|---|---|
| 保留示例域名 | 验证、测试数据、阴性测试 | 未送达 | 无法测试到达、时机或内容 |
| 临时收件箱(如 Tmailor) | 冒烟测试、手动 UAT、演示、探索性检查 | 在浏览器或应用中的真人 | 约 24 小时的消息,仅接收,无附件,不用于敏感数据 |
| 公司控制的邮箱,可选带加号标签 | 敏感或长期运行的流程、回复、附件、审计证据 | 真人,或经你的 IT 团队批准的邮箱访问权限 | 带标签的地址共用一个邮箱,因此并行测试会看到彼此的邮件 |
| SMTP 捕获器或沙箱 | 开发、预发布和 CI 环境,且由你控制外发邮件设置 | Web 界面和 API | 无法证明通过公共 DNS 和 MX 投递,也无法证明收件箱投放位置 |
| 托管收件箱 API | 通过真实发送路径进行端到端测试 | REST API 和 SDK | 套餐限制、保留期限、域名和并发数因供应商而异 |
电子邮件字段应接受或拒绝哪些地址?
将表单验证与邮件投递分开测试。对于看似有效但永远不会送达的情况,使用 user@example.com 这类保留地址;再加入一个带加号标签的地址和一个带子域名的地址,并添加格式错误的用例,例如缺少本地部分或缺少域名。预期结果应与生产系统实际使用的验证器保持一致。
何时临时收件箱就足够了
当一个人一次只检查一个流程,且邮件内容即使一天后丢失也无所谓时,临时收件箱就够用了。这正是一次性邮箱在 QA 中的经典用途:你需要一个用于手动测试表单的电子邮件地址,而不是长期使用的账户。典型场景包括:注册表单的预发布冒烟测试、对新用户引导邮件进行手动 UAT、账户创建的销售演示,或尝试各种奇怪输入并观察应用发送内容的探索性测试。
它的优势在于速度。无需向 IT 申请账户,也没有需要清理的共享邮箱。代价是控制力:消息窗口很短,没有附件,而且收件箱需要由人来阅读,而不是由代码读取。
何时需要 SMTP 捕获器或托管收件箱 API
一旦测试无人值守运行,收件箱就必须能被代码读取。有两类工具可以满足这一需求,它们解决的是不同的问题。
SMTP 捕获器和沙箱 在测试环境中替换应用的外发邮件服务器,并保留每条消息供检查,而不是将其投递出去。
- Mailpit 是一个可自行运行的开源免费工具。它默认捕获邮件,并提供 Web 界面和用于集成测试的 REST API。
- MailHog 的工作原理相同,但更老旧。Mailpit 的维护者称其已不再维护,因此在采用前请先确认其状态。
- Mailtrap Email Sandbox 是同一理念的托管版本,支持 SMTP 和 API 访问。它与 Mailtrap 的生产发送产品相互独立。
- Ethereal 是一个免费的模拟 SMTP 服务,主要配合 Nodemailer 使用。邮件会被捕获以供预览,绝不会真正投递。
托管收件箱 API 会在供应商的域名下为测试提供真实地址,因此你的应用通过其常规服务商发送邮件,测试则通过 API 读取结果。Tmailor 自家的临时邮件 API 就是这样工作的,并提供 Python、Node.js 和 PHP 的官方 SDK。
- Mailosaur 提供测试邮箱地址、API,以及与 Cypress、Playwright 和 Selenium 等框架配合使用的客户端库。它还涵盖短信验证码。
- MailSlurp 通过其 API 和 SDK 按需创建收件箱。测试可以等待邮件到达,然后提取验证码、链接和附件。
供应商的功能和套餐会变化,因此在将测试套件绑定到某一家之前,请先在各官方网站上确认最新信息。
何时带加号标签的公司邮箱是更好的选择
加号标签让一个公司邮箱可以接收多种地址变体。发送到公司域名下 qa+signup 或 qa+reset 的邮件会进入 qa 邮箱,你可以按标签筛选。Google Workspace 支持这一功能,Microsoft 的文档也说明 Exchange Online 中的加号寻址默认开启,除非管理员将其关闭。
当流程涉及真实客户数据、运行时间超过一天、需要回复或附件,或需要产出审计人员可能索取的证据时,请采用这种方式。但要记住其中的限制。标签只是同一个邮箱的变体,而非独立的收件箱,因此并行测试可能读到彼此的消息。有些注册表单会拒绝加号,有些应用会把带标签的变体视为同一账户。这两种行为都值得单独设计一个测试用例。
如何用临时收件箱运行手动注册测试
使用临时邮箱进行测试的手动注册测试需要三样东西:一个全新的地址、你正在测试的构建版本,以及收件箱之外一个用于记录收到内容的场所。只对你拥有或被授权测试的系统运行测试。
- 打开收件箱。 在网页端 创建一个免费的临时收件箱,或使用 Tmailor 应用或 Telegram 机器人,复制地址。在桌面端,Tmailor浏览器扩展 也可以把它填入测试版本的邮箱字段。
- 在你的测试版本中注册。 在预发布或 QA 环境中使用该地址,并记下你提交表单的时间。
- 留意邮件。 检查收到的是哪封邮件、发件人姓名和发件人地址、主题,以及耗时多久。
- 完成该步骤。 点击链接或输入验证码。确认账户状态只变更一次,并且重复使用同一链接会失败并显示清晰的提示。
- 把证据记录在别处。 将链接、验证码、时间戳和截图复制到你的测试用例中。邮件自到达起仅保留约 24 小时,因此收件箱不能作为你的测试记录。
- 如果你要重新测试,请保存访问令牌。 该令牌之后可重新打开同一地址,例如用于重跑密码重置。它无法恢复已过期的邮件,丢失的令牌也无法找回。
当一个会话需要同时使用多个角色,例如免费用户、试用用户和受邀队友时,多收件箱视图 可在同一个浏览器标签页中并排显示最多五个地址。每个角色都有自己的地址,因此你能看出哪封邮件属于哪个账户。
这种方式仍然是手动操作。收件箱由人在浏览器中创建,而不是由代码配置,因此它无法替代托管收件箱 API 来支持并行的无人值守运行。
一个收件箱还是每个测试一个地址?
单个共享收件箱适合快速冒烟检查,但很快就会变得杂乱。一旦多个测试同时运行,相似的主题行让人难以分辨哪封邮件属于哪个脚本,调试也就变成了猜测。
每个测试用例使用一个地址就能解决这个问题。日志、截图和邮件都能一一对应,缺少某封邮件时也能定位到具体场景,而不是所有场景。关于如何运行多临时邮件收件箱 的指南更详细地介绍了这一工作流程。
有些流程需要在几天后再次使用同一个地址,例如试用转为付费,或用户流失后又回来。可重复使用的临时邮箱地址 可通过其 Access Token 让地址保持可用,但邮件不会保留。在每一步运行时保存所需的链接和验证码,并将依赖旧邮件的步骤改用公司邮箱。如果测试人员在创建角色地址之前先登录 免费的Tmailor账户,每个地址都会保存在“已创建邮件”下,因此丢失 token 不再意味着丢失地址。
| 模式 | 最佳用途 | 主要风险 |
|---|---|---|
| 共享收件箱 | 冒烟检查和简短的手动测试 | 一旦运行重叠,就很难将邮件与测试对应起来 |
| 每个测试独立地址 | 多步骤注册和引导流程用例 | 需要跟踪和停用的地址更多 |
| 可复用的角色地址 | 试用转付费、重新激活和回访 | 邮件仍会在约 24 小时后过期;丢失 token 就意味着丢失地址,除非该地址已保存到 Tmailor 账户 |
注册和引导邮件中应检查什么
先盘点该流程可能发送的每一封邮件,再决定每个测试应断言什么。团队往往只有在测试中途出现额外邮件时才发现它们,比如某次增长实验或安全变更新增了一封没人记录过的邮件。
典型注册流程中的邮件
- 验证链接或一次性验证码
- 欢迎邮件及任何快速入门系列邮件
- Magic-Link 登录
- 密码重置
- 邮箱地址变更,同时发送到旧地址和新地址
- 新设备或新位置安全提醒
- 未完成报名提醒
对每一项,写下触发条件、预期时间以及会改变它的条件,例如套餐、地区或语言。允许的送达时间窗口应依据产品文档中的要求来设定,而不是假设一个通用阈值;即时验证邮件和定时发送的欢迎邮件序列需要不同的预期。一旦有了这些预期,每个测试就有了具体的依据可供核对。
每封测试邮件中应断言的内容
- 发件人与收件人: 发件人名称和地址、Reply-To,以及确切的收件人地址。
- 主题和正文: HTML 和纯文本两个版本,其中的姓名、套餐详情和语言都应正确。
- 链接: 链接的目标地址,以及它是否指向正确的环境。一封指向生产环境的预发布环境邮件是真正的 bug。
- 验证码: 格式、长度、有效期说明,以及声明的有效期是否与服务器实际执行的规则一致。
- 时间: 触发后消息用了多久才到达。
- 附件: 如果某个流程会发送 PDF 或发票,请在公司邮箱或测试工具中测试。Tmailor 不接收附件。
关于渲染有一点需要注意。临时收件箱展示的只是一个网页查看器如何显示你的 HTML。它无法告诉你同一封邮件在 Gmail、Outlook、Apple Mail、深色模式或小屏手机上的显示效果,所以如果这些对你重要,请另行安排渲染检查。
电子邮件变更与账户恢复流程
恢复流程出问题的方式比注册更隐蔽。请检查:更改邮箱时是否向新地址发送确认、向旧地址发送通知;已使用的重置链接是否无法重复使用;旧的重置链接在发出新链接后是否失效;以及在第二台设备上打开链接时,用户是否进入合理状态。OTP 流程值得单独做一次风险审查;风险清单涵盖了QA和UAT 涵盖了指标、重发窗口和所有权。
如何测试 OTP 和验证的边界情况
针对延迟送达、重发、过期和错误的验证码,以及在另一台设备上打开的链接,测试 OTP 和验证流程。每个用例都应同时检查服务器结果和展示给用户的消息。只在你拥有或被授权测试的系统上运行这些测试。好的 OTP 测试会故意打断流程:
- 延迟到达: 先等待一段时间再查看收件箱,并确认界面解释了当前情况,并提供了清晰的重发方式。
- 重发行为: 请求第二个验证码,检查第一个验证码是被作废还是仍然有效。
- 过期: 在验证码声明的有效期过后输入它,确认错误信息与实际发生的情况相符。
- 错误的验证码: 确认尝试次数限制和冷却提示对用户来说是否合理。
- 跨设备魔法链接: 在笔记本电脑上请求链接,再在手机上打开,看看用户最终会落到哪里。
关于哪些验证码能送达临时收件箱、哪些不能,请参阅这份关于 临时邮件OTP代码 的指南。
如果你的产品有意拒绝一次性邮箱域名,就直接测试这条路径。确认拒绝提示清晰,并且真实或公司控制的地址仍能完成注册。不要为了绕过拦截而轮换其他临时域名,无论是对自己的产品还是别人的产品。确认拦截生效才是测试目的,突破拦截不是。这篇关于 网站为何屏蔽临时邮件域名的解释,会 的说明介绍了这些过滤器背后的原因。
当邮件测试无人值守运行时会发生什么变化
当没有人盯着时,测试需要一个能通过代码读取的收件箱。这意味着要用 SMTP 捕获器的 API 或托管收件箱 API。Tmailor 网页收件箱不是这样的工具,但 Tmailor 临时邮件 API 是:测试可以创建仅接收地址、列出并读取邮件,并获取 API 找到的一次性验证码或验证链接。MCP 服务器让 Claude、Cursor 或 VS Code Copilot 等 AI 代理也能对你拥有或获准测试的注册流程做同样的事。
无论选择哪种工具,以下几个习惯都能让无人值守的邮件测试保持稳定:
- 为每次测试运行分配独立地址和关联 ID,这样早先运行迟到的邮件就不会满足错误的断言。
- 使用专门等待邮件到达的机制并设置合理的退避,与整体测试超时分开,并记录每条邮件耗时。
- 按收件人和主题精确匹配邮件,而不是读取“最新一封邮件”。
- 在 CI 日志中掩码处理验证码和魔法链接,因为日志往往比收件箱留存更久。
还要明确通过考试能证明什么。“应用生成并交接了邮件”、“托管测试域名通过公共邮件基础设施接收了邮件”和“Gmail把邮件放进了收件箱,而不是垃圾邮件”是三个不同的事实。SMTP捕捞器证明了前者,托管收件箱API证明了前两者,而第三者都无法证明。关于在 GitHub Actions、GitLab CI 和 CircleCI 上的管道设置,请参见 CI/CD 管道中电子邮件测试 指南。
保护测试数据安全,遵守规则
在临时测试收件箱中使用合成身份和非敏感内容,并且只针对你拥有或获准评估的系统运行注册测试。让 QA 账户远离生产分析,遵守速率限制,并将受监管数据、凭证、附件和留存证据转移到经批准的公司控制系统。
- 临时收件箱中不放任何真实数据。 切勿将真实客户记录、凭证、API 密钥或受监管数据发送到临时邮箱地址。使用姓名明显是虚构的合成用户。
- 只测试你获准测试的内容。 只针对你自己的产品或你获准测试的系统运行注册测试,并遵守该服务的速率限制和条款。不要用临时邮件在第三方网站上批量创建账户。容量和负载测试应放在你自己的预发布环境中,使用 SMTP 捕获器或托管收件箱 API。
- 让 QA 流量不进入生产数据。 清楚标注测试账户,并将其排除在分析和增长仪表盘之外。避免从生产发信域名发送大量测试邮件,因为退信和投诉会损害其声誉。
- 把策略写下来。 说明哪些流程可以使用临时收件箱、哪些需要公司邮箱、测试数据保留多久以及谁有访问权限。边界已经落在纸面上时,安全和合规审查会更快。
当安全部门询问服务商如何处理数据时,要看它收集什么、邮件保留多久以及访问机制如何运作。这篇关于 临时邮件和在线隐私 的概述从用户角度涵盖了这些问题。哪些流程可以使用一次性收件箱,仍应由你自己的法律、隐私和安全团队决定。
需要提前规划的限制
Tmailor 网页收件箱适合对非敏感入站邮件做简短的人工检查(自动化则要用临时邮件 API)。在选择它之前,先确定工作流程是否需要对外操作、附件、长期留存的证据或可长期恢复的地址。任何这类需求都要求使用公司控制的邮箱或专业测试工具;下面的清单解释了原因。
- Tmailor 仅支持接收。它可以检查入站注册、验证和 OTP 邮件,但无法检查回复流程或任何从该地址发出的内容。
- Tmailor 不接收附件,因此发票、合同或文件投递类邮件需要使用公司邮箱或测试工具。
- 邮件自到达起约保留 24 小时。请导出后续更长时间调查所需的链接、验证码和时间戳。
- 访问令牌是重新开启地址,而非过期消息,丢失的令牌无法恢复。
- 网页收件箱由人工阅读。无人值守读取收件箱需要 SMTP 捕获工具或托管收件箱 API,例如 Tmailor Temp Mail API。
- 部分服务会屏蔽一次性邮箱域名。如果你测试的流程是故意这样做的,请用真实或公司控制的地址来验证。
常见问题
我可以用临时邮箱地址进行 QA 测试吗?
可以,前提是人工阅读邮件的手动测试,且邮件内容不含敏感信息。临时收件箱非常适合冒烟测试、手动 UAT,以及注册和 OTP 流程演示。但对于真实客户数据、附件、回复、需要保留超过约 24 小时的邮件,或无人值守运行的测试,它并不合适。
自动化测试能通过 API 读取 Tmailor 收件箱吗?
可以,前提是地址通过 Tmailor Temp Mail API 创建。测试可以创建仅接收地址、列出并读取邮件,并通过官方 Python、Node.js 或 PHP SDK 获取 API 提取的一次性验证码或验证链接(尽力而为)。提供免费套餐可供起步。请仅用于你拥有或获授权测试的流程。如果你能控制应用的外发邮件设置,SMTP 捕获工具(如 Mailpit 或 Mailtrap Email Sandbox)也是另一种选择;其他托管收件箱 API 还包括 Mailosaur 和 MailSlurp。
测试邮箱账户和 SMTP 沙箱有什么区别?
测试邮箱账户(或称测试邮箱)是你的应用可以发送到的接收地址,由人工或测试程序检查送达的邮件。SMTP 沙箱则取代应用的外发邮件服务器,在公开投递前捕获邮件。接收邮箱能测试更多发送路径,但单靠这两种方式都无法证明邮件会进入 Gmail 或 Outlook 的收件箱。
每个 QA 测试是否应该使用不同的邮箱地址?
通常是的。每个测试用例使用一个地址,可以让日志、截图和邮件保持一致,并避免一个测试读到另一个测试的邮件。共享收件箱可用于快速冒烟检查,但一旦多个测试同时运行,调试就会变得困难。
我可以重复使用同一个 Tmailor 地址进行另一个测试吗?
可以,前提是你保存了它的 access token。该 token 可在任何设备上重新打开同一地址,有助于复测和多日流程。它无法恢复超过约 24 小时的邮件,且访客地址丢失的 token 无法找回,因此请在每一步运行时记录所需的链接和验证码。
QA 什么时候应该使用公司邮箱代替临时邮箱?
当邮件包含真实客户数据或凭证、流程需要回复或附件、必须保留邮件作为审计证据,或产品故意屏蔽一次性域名时,请使用公司邮箱。第三方身份提供商和生产迁移通常也需要真实的、公司控制的地址。
加号地址能创建独立的测试账户吗?
它创建的是地址变体,而不是独立的收件箱。发往你域名下 qa+one 和 qa+two 的邮件都会到达同一个 qa 邮箱,因此测试会共享邮件历史。你的应用可能把这些变体当作不同账户,也可能拒绝加号,或将它们归一化为同一个用户。请把这种行为当作一个测试用例,而不是假设。
为什么验证邮件没有出现在测试收件箱里?
最常见的原因包括应用发送出错、邮件服务商延迟、重复请求触发速率限制、地址拼写错误,或过滤器拒绝一次性域名。请先检查应用的邮件日志,然后用公司控制的地址重试一次,看看问题是否随地址还是随流程出现。
临时收件箱能测试附件、回复或邮件送达率吗?
不是和特泰勒在一起。它不接收附件,也无法发送或回复。收到临时收件箱的邮件也不会显示Gmail或Outlook会把邮件放进收件箱还是垃圾邮件。使用公司邮箱存放附件和回复,使用专门的投递或种子测试服务来放置收件箱。
用临时邮箱测试注册会影响我们的分析数据吗?
如果流量没有标注,就会影响。请清晰标记每个测试账户,例如使用命名规范或测试标志,并将这些账户排除在生产仪表盘和增长报告之外。在单独的预发布环境中运行测试,首先就能让大部分此类流量不进入真实数据。
选择合适的测试收件箱
根据测试必须证明的内容来选择收件箱。当无需实际投递时,使用保留的示例域名;手动非敏感检查使用临时收件箱;需要保留或涉及敏感信息的流程使用公司邮箱;能控制外发设置时使用 SMTP 捕获工具;无人值守的端到端测试使用托管收件箱 API。

Marcus Lee writes Tmailor's step-by-step guides, signing up to apps and platforms with temp mail, using the mobile app and Telegram bot, custom domains, reusing addresses, and getting the most out of disposable email day to day.