MoeMail
返回博客

用 Webhook 接收来信

轮询收件箱能用,但它会拉高延迟、白白浪费请求。Webhook 把模式反了过来:不再循环着问“有信了吗?”,而是服务在邮件落地的瞬间主动来叫。本指南讲清来信 Webhook 如何与 MoeMail 的 API 配合,以及怎样可靠地处理它们。

轮询 vs Webhook

轮询是反复去敲邮件端点,直到有东西冒出来——简单,但慢而且吃配额。Webhook 则是一个属于你的 URL,当某个事件发生时(这里是一封新来信),服务商会向它发 POST。你的端点立刻响应,没有循环。

它是怎么运作的

  1. 注册一个由你掌控的 Webhook URL(一个后端路由,或你的测试框架暴露的一个端点)。
  2. 当邮件到达你的临时邮箱时,MoeMail 会把邮件载荷 POST 到那个 URL。
  3. 你的处理逻辑校验请求、解析邮件并采取行动——存下它、解除某个等待中的测试步骤,或触发下游逻辑。

响应要快——否则会被重试

Webhook 处理逻辑必须快速回复(几秒之内)并返回 2xx 状态。任何非 2xx——或者一个慢吞吞的处理逻辑——都会被当作失败而重试,于是一个迟缓的处理逻辑可能会反复收到同一个事件。由此推出两条规则:让处理逻辑保持轻量(别在里面同步做繁重的数据库操作——把它丢进队列),并让处理做到幂等,这样重复投递也无害。

校验载荷

你的 Webhook URL 实际上是公开的,所以在信任请求之前,先确认它们真的来自 MoeMail。校验你账户配置的任何签名 / 共享密钥,忽略形态异常的请求,绝不对未经校验的输入采取行动。

测试中的 Webhook

对于自动化邮箱验证测试,Webhook 能彻底干掉轮询:你的测试等在一个 Promise 上,Webhook 一触发它就 resolve,随后提取链接或验证码。这比轮询循环更快,也远没那么容易飘。

立即开始

OpenAPI 文档查看 Webhook 载荷格式,把一个 URL 指向你的处理逻辑,再创建一个邮箱给自己发一封测试邮件。