跳转到内容

测试

切勿使用真实域名下编造的地址进行测试:它们会退信,损害你的发件信誉。SpacePost 在 test.spacepost.dev 提供测试收件箱。发往这些地址的邮件不会被投递到任何地方,但完整的事件流程都会运行,包括 Webhook。

地址 模拟场景 你会看到的事件
delivered@test.spacepost.dev 成功投递 email.sent, email.delivered
bounced@test.spacepost.dev 硬退信(永久性) email.sent, email.bounced
complained@test.spacepost.dev 收件人标记为垃圾邮件 email.sent, email.delivered, email.complained
delayed@test.spacepost.dev 临时投递问题 email.sent, email.delivery_delayed
softbounced@test.spacepost.dev 软退信(邮箱已满);30 天内第三次出现时会抑制该地址 email.sent, email.delivery_delayed

加上 +label 即可并行运行多个场景并加以区分:delivered+signup@test.spacepost.dev、bounced+case-17@test.spacepost.dev。选择结果时会忽略该标签。

在验证域名之前,你可以使用 onboarding@test.spacepost.dev 发送。它有以下限制:

  • 它只能发送到你团队成员的邮箱地址以及 @test.spacepost.dev 地址;
  • 其他任何收件人都会被以 403 validation_error 拒绝;
  • 域名验证通过后,请使用你自己的地址发送。
test.ts
import { SpacePost } from "@spacepost/node";
const spacepost = new SpacePost(process.env.SPACEPOST_API_KEY);
await spacepost.emails.send({
from: "Acme <onboarding@test.spacepost.dev>",
to: ["delivered@test.spacepost.dev", "bounced+case-1@test.spacepost.dev"],
subject: "Test",
html: "<p>Test</p>",
});
  1. 创建一个指向你本机隧道的 Webhook(例如 https://abc123.ngrok.app/webhooks/spacepost),并订阅你要处理的事件。
  2. 分别发送到 delivered@、bounced@、complained@ 和 delayed@。
  3. 检查你的处理程序是否验证了签名,并返回 2xx。

测试邮件与其他邮件一样,会计入你的每月配额。