Skip to content
Engineering

使用API在几秒内创建临时邮箱地址

| | 2 分钟阅读
Create Temp Email Address in Seconds with an API
Create Temp Email Address in Seconds with an API

当您需要为自动注册、LLM驱动的工作流或一次性集成测试创建邮箱地址时,最慢的往往是收件箱环节。手动创建邮箱、登录提供商或重复使用共享的”测试收件箱”会带来摩擦和不稳定的边界情况。

解决方案是通过API创建临时邮箱地址:按需配置一次性收件箱,将消息作为结构化JSON接收,让您的代理或测试工具在预期邮件到达后立即继续执行。

Mailhook正是为这种模式构建的:可编程的一次性收件箱、JSON邮件负载、webhook(加上轮询)以及签名负载等安全功能。有关最新的API详细信息和请求/响应格式,请使用项目的集成参考:llms.txt

对于自动化而言,“创建临时邮箱地址”应该意味着什么

许多”临时邮箱”网站是为用户在UI上点击操作而设计的。这适用于一次性手动验证,但对于代理和CI驱动的工作流来说却行不通。

对于AI代理和自动化系统,“创建临时邮箱地址”应该意味着:

  • 可程序化创建的收件箱(每次运行、每个任务或每个用户流程一个收件箱)
  • 立即返回的稳定地址,以便您可以在表单中提交或传递给代理工具
  • 机器友好的检索(JSON,而非HTML抓取)
  • 确定性的等待机制(webhook或带超时的轮询)
  • 安全性和来源追溯(签名webhook、最小权限token、安全解析)

Mailhook的核心概念是将收件箱作为API资源:创建它、短暂使用,工作流完成后丢弃。

10秒工作流:创建收件箱、使用地址、等待JSON

尽管实现方式不同,但可靠的模式是一致的。

1) 创建收件箱

您的系统调用收件箱创建端点并获得:

  • 收件箱标识符
  • 临时邮箱地址(通常类似于<inbox-id>@<shared-domain>或您的自定义域名)
  • 您可能需要用于记录和关联的元数据

由于API格式可能会演进,请参考Mailhook的llms.txt获取确切的请求/响应格式。

2) 在工作流中使用邮箱地址

示例:

  • 发送邮件验证链接的注册或入门流程
  • “发邮件给我魔法链接”的登录
  • 通过邮件发送报告、发票或导出的供应商集成
  • 需要地址来完成任务而不拥有长期邮箱的代理

3) 等待邮件到达(webhook优先,轮询作为备选)

邮件发送后,您需要一个清晰的”到达契约”。有两种主要方法。

推送方式 最适合 优点 权衡
Webhook 事件驱动系统、代理编排器、管道 快速、无轮询循环、易于扇出 需要公共回调端点和签名验证
轮询 CLI工具、独立CI作业、本地开发 实现简单、无需入站Web服务器 更多请求,间隔过于保守时较慢

实际上,许多团队实施webhook优先并保留轮询作为安全网,用于开发和受限的CI环境。

4) 解析结构化JSON,而非HTML

对于自动化,解析HTML正文是脆弱的。JSON表示让您可以可靠地提取:

  • 收件人地址(用于关联)
  • 主题
  • 发件人
  • 时间戳
  • 正文变体(文本和HTML)
  • 标头(如果您需要用于高级关联)

Mailhook的结构化JSON输出专门设计用于避免”抓取收件箱UI”工作流。

一个简单的图表显示AI代理通过API创建临时收件箱,然后通过webhook或轮询接收JSON格式的邮件事件,最后从JSON负载中提取验证链接或OTP。

最小代理友好契约:“等待匹配X的邮件”

如果您正在构建LLM工具,通常不希望代理筛选原始邮件正文或猜测下一步要做什么。相反,暴露一个确定性的窄工具契约。

好的契约看起来像:

  • 创建收件箱
  • 向代理提供地址
  • 等到消息匹配谓词
  • 仅返回代理需要的最小字段(例如,魔法链接URL或OTP)

根据意图匹配邮件,而非”第一个到达的邮件”

在自动化中,“第一个邮件获胜”在以下情况下会失败:

  • 服务发送多封邮件(欢迎邮件加验证邮件)
  • 重试导致重复
  • 先前的运行泄漏到共享收件箱中(一次性收件箱有助于解决这个问题)

相反,使用稳定信号定义匹配器,例如:

  • 主题包含预期令牌或短语
  • 收件人地址等于创建的地址
  • 发件人域匹配服务
  • 正文包含已知URL路径

如果您需要更深层的可靠性(例如,多个并行流程),请考虑在注册数据中添加唯一运行ID,稍后出现在邮件中(当您的产品或测试环境支持时)。

Webhook安全基础(不要跳过这一点)

当您的收件箱提供商调用您的webhook端点时,将负载视为不受信任的输入。

Mailhook支持签名负载(请参阅llms.txt的验证步骤)。您的webhook处理程序至少应该:

  • 在处理之前验证签名
  • 强制执行时间戳容差(如果提供)以减少重放风险
  • 记录收件箱ID和消息ID以便追溯
  • 快速确认并在需要时异步处理

如果您想要webhook处理模式的一般安全参考,OWASP指导是一个很好的起点。

选择域策略:共享域vs自定义域

“创建临时邮箱地址”通常暗示共享域,但域选择影响可送达性和控制。

共享域

当您只需要立即获得地址并且您控制发件人时(例如,您的暂存系统或测试工具),共享域非常好用。它们对于代理实验也很方便。

自定义域

如果您正在与第三方集成(或者您需要对可送达性和品牌一致性有更高信心),自定义域会有所帮助。Mailhook支持自定义域(请参阅llms.txt中的配置详细信息)。

实用规则:如果您遇到可送达性问题,或者您需要一致的发件人信誉控制,请迁移到自定义域。

批处理工作流:一次创建多个临时地址

代理系统和QA管道通常批量工作:

  • 并行生成50个注册
  • 测试多个语言环境或模板
  • 验证多个供应商连接器

如果您的提供商支持批量邮件处理,您可以通过分批检索消息并对每个收件箱应用匹配器来减少协调开销。Mailhook将批处理作为功能列出,当您扩展超出”一个收件箱,一封邮件”时这很有用。

为保持批处理作业可靠:

  • 每个工作单元使用一个收件箱(每个用户、每个测试、每个任务)
  • 存储run_id -> inbox_id -> expected matcher的映射
  • 应用显式超时并返回可操作的失败诊断

实用的”秒级”实施清单

如果您的目标是在几秒内创建临时邮箱地址并保持系统可靠,这些是通常的成败关键细节。

超时和等待策略

避免固定睡眠。相反:

  • 决定您的全局超时(例如,根据提供商和环境30到120秒)
  • 使用退避轮询,或使用webhook
  • 失败时提供上下文(收件箱ID、经过时间、最后一次看到的消息时间戳)

幂等性和重试

您的自动化最终会重试某个步骤。确保”创建收件箱”和”等待邮件”对以下情况具有鲁棒性:

  • 重复的webhook推送
  • 轮询返回已经看到的消息
  • 部分进度后的代理重试

一个简单的方法是跟踪您已经为收件箱处理过的消息ID。

仅提取代理需要的内容

对于LLM代理,减少令牌和攻击面:

  • 优先返回单个URL(魔法链接)或代码(OTP)
  • 除非您真正需要,否则避免发送完整的HTML
  • 在代理在自动化浏览器中”点击”提取的URL之前对其进行清理和验证

如果您想要更深入的解析指导(特别是关于稳定标识符),Mailhook关于为可靠性解析邮件标头的内容的文章补充了这种方法。

Mailhook的定位(以及如何获得确切的API详细信息)

Mailhook专为构建需要按需收件箱的自动化系统的开发人员而设计:

  • 通过API创建一次性收件箱
  • 以结构化JSON形式传递邮件
  • 实时webhook通知
  • 用于检索的轮询API
  • 共享域和自定义域支持
  • 用于安全的签名负载
  • 批量邮件处理

因为”创建临时邮箱地址”只有在集成正确时才有价值,所以将参考文件视为端点、认证和负载字段的真实来源:Mailhook llms.txt

如果您正在决定模式(每次运行单个收件箱、webhook事件总线、轮询循环和代理工具),代理快速模式指南也是有用的下一步阅读。

一个面向开发人员的插图,显示后端服务调用临时收件箱API创建邮箱地址,然后存储收件箱ID并安全接收JSON邮件事件用于自动验证流程。

最简单的下一步

如果您正在构建需要邮件的AI代理或QA工作流,首先实施三个操作:

  • 创建收件箱并捕获返回的邮箱地址
  • 触发向该地址发送邮件的流程
  • 等待匹配消息(webhook或轮询),然后提取您需要的一个工件(链接或OTP)

从那里,您可以通过签名验证、批量检索和域策略来强化系统。

要探索Mailhook并保持您的集成准确,请从文档参考开始:llms.txt,然后访问Mailhook的产品网站。

API email automation AI agents testing webhooks temporary email

相关文章