跳到正文
spacepost

对比

面向事务邮件的 SendGrid 替代方案

SpacePost 是基于 Amazon SES 的事务邮件 API,由一家欧盟公司运营。如果你的应用通过 SendGrid 发送收据、密码重置和通知,这里会说明每一部分如何迁移,以及 SendGrid 仍然做得更多的地方。

本页讨论的是事务邮件。SpacePost 提供受众和简单的群发,但不能替代 SendGrid Marketing Campaigns(自动化、订阅表单、A/B 测试、可视化编辑器)。

SendGrid 概念对照

主题SendGridSpacePost
发送 APIv3 Mail Send:带 personalizations 的 POST /v3/mail/send(每个请求最多 1,000 个),返回 202 AcceptedPOST /emails(一封包含 to、cc、bcc 的邮件)或 POST /emails/batch(最多 100 封),返回邮件 ID
SMTPsmtp.sendgrid.net,端口 25、587 或 2525(TLS)或 465(SSL),用户名 apikeysmtp.spacepost.dev,端口 25976(STARTTLS),用户名 spacepost,密码为你的 API 密钥
模板存储在 SendGrid 中的动态模板(ID 以 d- 开头),使用 Handlebars,通过 dynamic_template_data 填充暂无托管模板:在你的应用中渲染 HTML(例如使用 React Email),然后发送 html 和 text
屏蔽列表退信、拦截、垃圾邮件投诉、无效地址和退订分组每个团队一个屏蔽列表:硬退信、投诉和反复的软退信会自动加入;你也可以用 POST /suppressions 自行添加
事件 WebhookEvent Webhook:事件的 JSON 数组(processed、delivered、deferred、bounce、dropped、open、click、spam report、unsubscribe),也有签名版本按事件类型的 Webhook(email.sent、delivered、delivery_delayed、bounced、complained、opened、clicked、failed、suppressed),每个请求一个事件,Standard Webhooks 签名
欧盟全球 API,另有面向欧盟区域子用户的欧盟主机(api.eu.sendgrid.com)由欧盟公司 Studio 404 d.o.o. 运营;从 AWS eu-central-1(法兰克福)发送;数据存储在欧盟
营销邮件Marketing Campaigns:联系人、分组、自动化、订阅表单受众、联系人和带一键退订的群发;没有自动化和可视化编辑器

迁移步骤

  1. 01

    密钥和域名

    创建 SpacePost API 密钥并验证你的发信域名(三条 DKIM CNAME 加上 MAIL FROM 记录)。切换完成前保留 SendGrid 的 DNS 记录。

  2. 02

    发送调用

    每个 personalization 对应一次 POST /emails 调用:to、cc、bcc、subject、html 或 text、reply_to、base64 附件和自定义头都可沿用。如需一次发送最多 100 封,请使用 POST /emails/batch。

  3. 03

    或者只改 SMTP

    将主机改为 smtp.spacepost.dev,端口改为 25976(STARTTLS),用户名改为 spacepost,密码改为你的 API 密钥。

  4. 04

    模板

    发送前在代码中渲染动态模板。Handlebars 源文件可以用任何 Handlebars 库继续使用。

  5. 05

    屏蔽列表

    从 SendGrid 导出退信、拦截、垃圾邮件投诉和退订地址,并用 POST /suppressions 逐个添加,这样就不会再向它们发信。

  6. 06

    Webhook

    为你使用的事件创建 Webhook,并把 SendGrid 的事件名称对应到我们的名称。签名遵循 Standard Webhooks,因此兼容 Svix 的库都能验证。

同一封邮件,迁移前后

sendgrid.ts
// SendGrid v3 Mail Send
await fetch("https://api.sendgrid.com/v3/mail/send", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.SENDGRID_API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({
    personalizations: [{ to: [{ email: "ada@example.com" }] }],
    from: { email: "receipts@acme.com", name: "Acme" },
    subject: "Your receipt",
    content: [{ type: "text/html", value: html }],
  }),
});
spacepost.ts
// SpacePost (Resend-compatible API)
const res = await fetch("https://api.spacepost.dev/emails", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.SPACEPOST_API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({
    from: "Acme <receipts@acme.com>",
    to: ["ada@example.com"],
    subject: "Your receipt",
    html,
  }),
});
const { id } = await res.json();

SendGrid 做得更多的地方

  • 带设计编辑器的托管动态模板,以及带自动化和订阅表单的 Marketing Campaigns。
  • 用于接收邮件的 Inbound Parse,SpacePost 目前还不提供。
  • 多年来在超大发送量下的运营经验,以及更多在子用户和区域之间分配流量的方式。

SendGrid 的信息来自 2026年10月29日 的 twilio.com/docs/sendgrid(Mail Send API、SMTP 集成、Event Webhook)。这些信息可能会变化;如有过时之处,请发送邮件至 support@spacepost.dev 告诉我们。

SpacePost 是独立产品,与 Twilio 或 SendGrid 无关联,也未获其认可。“SendGrid”和“Twilio”是其各自所有者的商标。

用你自己的应用试试

每月 3,000 封邮件免费,无需绑卡。

免费开始