Zum Inhalt springen

Bounces, Beschwerden und Sperren

Typ Bedeutung Event Ergebnis
Hard (dauerhaft) Die Adresse existiert nicht oder die Domain lehnt E-Mails dauerhaft ab. email.bounced last_event wird zu bounced; die Adresse wird deiner Sperrliste hinzugefügt.
Soft (vorübergehend) Ein vorübergehendes Problem wie ein volles Postfach oder ein Serverausfall. SES versucht es weiter. email.delivery_delayed Zunächst wird nichts gesperrt. Nach 3 Soft Bounces bei verschiedenen E-Mails innerhalb von 30 Tagen wird die Adresse deiner Sperrliste hinzugefügt.

Hard Bounces enthalten in der Webhook-Payload bounce.type: "Permanent" und einen bounce.subType.

Eine Adresse, die immer wieder als Soft Bounce zurückkommt, ist meist verlassen, und E-Mail-Anbieter rechnen wiederholte Versuche gegen dich. Soft Bounces, die durch die Nachricht statt durch die Adresse verursacht werden (Nachricht zu groß, Inhalt oder Anhang abgelehnt), zählen nicht auf das Limit; korrigiere stattdessen die Nachricht.

Eine Beschwerde entsteht, wenn ein Empfänger deine E-Mail als Spam markiert und sein E-Mail-Anbieter das zurückmeldet (ein Feedback-Loop). SpacePost löst email.complained aus, setzt last_event auf complained und trägt den Empfänger in deine Sperrliste ein. Beschwerden sind das stärkste negative Signal überhaupt: Halte sie unter 0,1 %.

Die Sperrliste ist eine Liste von Adressen pro Team, an die nicht gesendet wird. Vor jedem Versand gleicht SpacePost alle Empfänger (to, cc, bcc) mit ihr ab:

  • Gesperrte Empfänger werden aus der Nachricht entfernt und ein email.suppressed-Event wird ausgelöst.
  • Bleibt kein Empfänger übrig, wird nichts gesendet und das last_event der E-Mail ist suppressed.
  • Das Kontingent wird gezählt, wenn die E-Mail angenommen wird, vor der Sperrprüfung, daher zählen gesperrte Empfänger weiterhin auf dein Monatskontingent.

Einträge werden automatisch bei Hard Bounces, wiederholten Soft Bounces und Beschwerden hinzugefügt oder manuell über die API. Jeder Eintrag hat einen reason (bounce, complaint, unsubscribe oder manual) und ein menschenlesbares detail, etwa Hard bounce (NoEmail) oder 3 soft bounces in 30 days (MailboxFull). Der erste für eine Adresse erfasste Grund bleibt erhalten: Das manuelle Hinzufügen einer Adresse überschreibt nie einen Bounce oder eine Beschwerde.

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"
}

Nimmt die Domain eines Empfängers überhaupt keine E-Mails an (keine MX- oder A-Einträge), überspringt SpacePost diesen Empfänger, statt eine Zustellung zu versuchen, und löst email.suppressed aus. Das schützt deine Bounce-Rate. Siehe Kontoverifizierung und Versandlimits.

bounced@test.spacepost.dev, complained@test.spacepost.dev und (nach drei Sendungen) softbounced@test.spacepost.dev erzeugen echte Sperreinträge und zählen für deine Raten. Entferne sie nach dem Testen. Siehe Testen.