バウンス、苦情、送信停止
| 種類 | 意味 | イベント | 結果 |
|---|---|---|---|
| ハード(恒久的) | アドレスが存在しない、またはドメインが恒久的にメールを拒否しています。 | email.bounced |
last_event が bounced になり、アドレスは送信停止リストに追加されます。 |
| ソフト(一時的) | メールボックスが満杯、サーバーの障害など、一時的な問題です。SES は再試行を続けます。 | email.delivery_delayed |
最初は何も送信停止になりません。30 日以内に、異なるメールで 3 回ソフトバウンスすると、そのアドレスは送信停止リストに追加されます。 |
ハードバウンスには、Webhook のペイロードに bounce.type: "Permanent" と bounce.subType が含まれます。
ソフトバウンスを繰り返すアドレスは、たいていすでに使われていません。メールボックスプロバイダーは、繰り返される送信の試みをあなたの不利に数えます。アドレスではなくメッセージが原因のソフトバウンス(メッセージが大きすぎる、コンテンツや添付ファイルが拒否された)は、上限の回数には数えられません。その場合は、メッセージのほうを修正してください。
苦情は、受信者があなたのメールを迷惑メールとして報告し、そのメールボックスプロバイダーが通知(フィードバックループ)を返すと発生します。SpacePost は email.complained を発生させ、last_event を complained に設定し、その受信者を送信停止リストに追加します。苦情は最も強い否定的なシグナルです。0.1% 未満に抑えてください。
送信停止リスト
Section titled “送信停止リスト”送信停止リストは、チームごとの送信禁止リストです。送信のたびに、SpacePost はすべての宛先(to、cc、bcc)をこのリストと照合します。
- 送信停止中の宛先はメッセージから除外され、
email.suppressedイベントが発生します。 - 宛先が 1 つも残らない場合は何も送信されず、メールの
last_eventはsuppressedになります。 - クォータはメールが受理された時点、つまり送信停止のチェックより前に加算されるため、送信停止中の宛先も月間クォータに含まれます。
エントリは、ハードバウンス、繰り返されるソフトバウンス、苦情で自動的に追加されるほか、API で手動でも追加できます。各エントリには reason(bounce、complaint、unsubscribe、manual)と、Hard bounce (NoEmail) や 3 soft bounces in 30 days (MailboxFull) のような人が読める detail があります。アドレスに最初に記録された理由は保持されます。手動で追加しても、バウンスや苦情の記録が上書きされることはありません。
import { SpacePost } from "@spacepost/node";
const spacepost = new SpacePost();
await spacepost.suppressions.create({ email: "do-not-mail@example.com" });
const { data } = await spacepost.suppressions.list({ limit: 100 });for (const s of data?.data ?? []) console.log(s.email, s.reason);
await spacepost.suppressions.remove("do-not-mail@example.com"); // by email or id# listcurl https://api.spacepost.dev/suppressions?limit=100 -H "Authorization: Bearer $SPACEPOST_API_KEY"
# addcurl -X POST https://api.spacepost.dev/suppressions \ -H "Authorization: Bearer $SPACEPOST_API_KEY" -H "Content-Type: application/json" \ -d '{ "email": "do-not-mail@example.com" }'
# remove, by email or idcurl -X DELETE https://api.spacepost.dev/suppressions/do-not-mail@example.com -H "Authorization: Bearer $SPACEPOST_API_KEY"{ "object": "suppression", "id": "0192e1c4-0000-7000-8000-0000000000d1", "email": "nobody@example.com", "reason": "bounce", "detail": "Hard bounce (NoEmail)", "created_at": "2026-10-23T14:02:12.000Z"}到達できない宛先ドメイン
Section titled “到達できない宛先ドメイン”宛先のドメインがメールをまったく受け付けない場合(MX レコードも A レコードもない場合)、SpacePost は配信を試みずにその宛先をスキップし、email.suppressed を発生させます。これによりバウンス率が守られます。アカウント認証と送信上限をご覧ください。
テスト用アドレスを使う
Section titled “テスト用アドレスを使う”bounced@test.spacepost.dev、complained@test.spacepost.dev、(3 回送信した後の)softbounced@test.spacepost.dev は、実際の送信停止エントリを作成し、率にも加算されます。テストの後で削除してください。テストをご覧ください。