比較
トランザクションメール向けの SendGrid 代替
SpacePost は Amazon SES 上のトランザクションメール API で、EU の企業が運営しています。アプリが SendGrid で領収書、パスワード再設定、通知を送っているなら、各部分の移行方法と、SendGrid のほうが多くできる点をここで確認できます。
このページはトランザクションメールを対象としています。SpacePost にはオーディエンスとシンプルなブロードキャストがありますが、SendGrid Marketing Campaigns(オートメーション、登録フォーム、A/B テスト、ビジュアルエディター)の代わりにはなりません。
SendGrid の概念との対応
| 項目 | SendGrid | SpacePost |
|---|---|---|
| 送信 API | v3 Mail Send:personalizations(1 リクエストあたり最大 1,000)付きの POST /v3/mail/send、202 Accepted を返す | POST /emails(to、cc、bcc を含む 1 通)または POST /emails/batch(最大 100 通)、メール ID を返す |
| SMTP | smtp.sendgrid.net、ポート 25、587、2525(TLS)または 465(SSL)、ユーザー名 apikey | smtp.spacepost.dev、ポート 25976(STARTTLS)、ユーザー名 spacepost、パスワードは API キー |
| テンプレート | SendGrid に保存されるダイナミックテンプレート(ID は d- で始まる)、Handlebars、dynamic_template_data で値を埋め込む | ホスト型テンプレートはまだありません。アプリ側で HTML を生成し(例:React Email)、html と text を送信します |
| 配信停止リスト | バウンス、ブロック、スパム報告、無効なアドレス、配信停止グループ | チームごとに 1 つの配信停止リスト:ハードバウンス、苦情、繰り返しのソフトバウンスは自動で追加。独自のアドレスは POST /suppressions で追加 |
| イベント Webhook | Event Webhook:イベントの JSON 配列(processed、delivered、deferred、bounce、dropped、open、click、spam report、unsubscribe)、署名付きも可 | イベント種別ごとの Webhook(email.sent、delivered、delivery_delayed、bounced、complained、opened、clicked、failed、suppressed)、1 リクエスト 1 イベント、Standard Webhooks 署名 |
| EU | グローバル API に加え、EU リージョンのサブユーザー向けの EU ホスト(api.eu.sendgrid.com) | EU 企業の Studio 404 d.o.o. が運営、AWS eu-central-1(フランクフルト)から送信、データは EU 内に保存 |
| マーケティングメール | Marketing Campaigns:連絡先、セグメント、オートメーション、登録フォーム | オーディエンス、連絡先、ワンクリック配信停止付きのブロードキャスト。オートメーションとビジュアルエディターはありません |
移行の手順
01
キーとドメイン
SpacePost の API キーを作成し、送信ドメインを認証します(DKIM の CNAME 3 件と MAIL FROM レコード)。切り替えまでは SendGrid の DNS レコードを残しておきます。
02
送信の呼び出し
personalization 1 件が POST /emails 1 回になります。to、cc、bcc、subject、html または text、reply_to、base64 の添付ファイル、カスタムヘッダーはそのまま使えます。最大 100 通をまとめて送るには POST /emails/batch を使います。
03
SMTP だけでも
ホストを smtp.spacepost.dev、ポートを 25976(STARTTLS)、ユーザー名を spacepost、パスワードを API キーに変更します。
04
テンプレート
送信前にダイナミックテンプレートをコード内で描画します。Handlebars のソースは任意の Handlebars ライブラリで再利用できます。
05
配信停止リスト
SendGrid からバウンス、ブロック、スパム報告、配信停止をエクスポートし、各アドレスを POST /suppressions で追加すれば、二度と送信されません。
06
Webhook
使用するイベントの Webhook を作成し、SendGrid のイベント名を SpacePost の名前に対応させます。署名は Standard Webhooks に準拠しているため、Svix 互換のライブラリで検証できます。
同じメッセージの移行前と移行後
// 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 (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」は各所有者の商標です。
