Salta ai contenuti

Rimbalzi, reclami e soppressioni

Tipo Significato Evento Risultato
Definitivo (permanente) L’indirizzo non esiste o il dominio rifiuta le email in modo permanente. email.bounced last_event diventa bounced; l’indirizzo viene aggiunto alla tua lista di soppressione.
Temporaneo (transient) Un problema temporaneo come una casella piena o un’interruzione del server. SES continua a riprovare. email.delivery_delayed All’inizio non viene soppresso nulla. Dopo 3 rimbalzi temporanei su email diverse entro 30 giorni, l’indirizzo viene aggiunto alla tua lista di soppressione.

I rimbalzi definitivi includono bounce.type: "Permanent" e un bounce.subType nel payload del webhook.

Un indirizzo che continua a rimbalzare in modo temporaneo di solito è abbandonato, e i provider di posta contano a tuo sfavore i tentativi ripetuti. I rimbalzi temporanei causati dal messaggio e non dall’indirizzo (messaggio troppo grande, contenuto o allegato rifiutato) non contano per il limite; correggi invece il messaggio.

Un reclamo avviene quando un destinatario segnala la tua email come spam e il suo provider di posta lo comunica (un feedback loop). SpacePost emette email.complained, imposta last_event su complained e aggiunge il destinatario alla tua lista di soppressione. I reclami sono il segnale negativo più forte che esista: mantienili sotto lo 0,1%.

La lista di soppressione è una lista di non-invio per team. Prima di ogni invio SpacePost controlla tutti i destinatari (to, cc, bcc) rispetto a essa:

  • I destinatari soppressi vengono rimossi dal messaggio e viene emesso un evento email.suppressed.
  • Se non resta nessun destinatario, non viene inviato nulla e il last_event dell’email è suppressed.
  • La quota viene conteggiata quando l’email viene accettata, prima del controllo di soppressione, quindi i destinatari soppressi contano comunque sulla tua quota mensile.

Le voci vengono aggiunte automaticamente per i rimbalzi definitivi, per i rimbalzi temporanei ripetuti e per i reclami, oppure manualmente tramite l’API. Ogni voce ha un reason (bounce, complaint, unsubscribe o manual) e un detail leggibile, come Hard bounce (NoEmail) o 3 soft bounces in 30 days (MailboxFull). Il primo motivo registrato per un indirizzo viene mantenuto: aggiungere manualmente un indirizzo non sovrascrive mai un rimbalzo o un reclamo.

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

Se il dominio di un destinatario non accetta affatto email (nessun record MX o A), SpacePost salta quel destinatario invece di tentare la consegna ed emette email.suppressed. Questo protegge il tuo tasso di rimbalzi. Vedi Verifica dell’account e limiti di invio.

bounced@test.spacepost.dev, complained@test.spacepost.dev e (dopo tre invii) softbounced@test.spacepost.dev creano vere voci di soppressione e concorrono ai tuoi tassi. Rimuovile dopo il test. Vedi Test.