コンテンツにスキップ

バウンス、苦情、送信停止

種類 意味 イベント 結果
ハード(恒久的) アドレスが存在しない、またはドメインが恒久的にメールを拒否しています。 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% 未満に抑えてください。

送信停止リストは、チームごとの送信禁止リストです。送信のたびに、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 があります。アドレスに最初に記録された理由は保持されます。手動で追加しても、バウンスや苦情の記録が上書きされることはありません。

suppressions.ts
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
Suppression
{
"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"
}

宛先のドメインがメールをまったく受け付けない場合(MX レコードも A レコードもない場合)、SpacePost は配信を試みずにその宛先をスキップし、email.suppressed を発生させます。これによりバウンス率が守られます。アカウント認証と送信上限をご覧ください。

bounced@test.spacepost.dev、complained@test.spacepost.dev、(3 回送信した後の)softbounced@test.spacepost.dev は、実際の送信停止エントリを作成し、率にも加算されます。テストの後で削除してください。テストをご覧ください。