Rebotes, quejas y supresiones
Rebotes
Sección titulada «Rebotes»| Tipo | Significado | Evento | Resultado |
|---|---|---|---|
| Duro (permanente) | La dirección no existe o el dominio rechaza el correo de forma permanente. | email.bounced |
last_event pasa a bounced; la dirección se añade a tu lista de supresión. |
| Blando (transitorio) | Un problema temporal, como un buzón lleno o una caída del servidor. SES sigue reintentando. | email.delivery_delayed |
Al principio no se suprime nada. Tras 3 rebotes blandos en correos distintos en 30 días, la dirección se añade a tu lista de supresión. |
Los rebotes duros incluyen bounce.type: "Permanent" y un bounce.subType en el payload del webhook.
Una dirección que rebota de forma blanda una y otra vez suele estar abandonada, y los proveedores de buzones cuentan los intentos repetidos en tu contra. Los rebotes blandos causados por el mensaje y no por la dirección (mensaje demasiado grande, contenido o adjunto rechazado) no cuentan para el límite; corrige el mensaje en su lugar.
Una queja ocurre cuando un destinatario marca tu correo como spam y su proveedor de buzón lo notifica (un feedback loop). SpacePost genera email.complained, establece last_event en complained y añade al destinatario a tu lista de supresión. Las quejas son la señal negativa más fuerte que existe: mantenlas por debajo del 0,1 %.
La lista de supresión
Sección titulada «La lista de supresión»La lista de supresión es una lista de no enviar propia de cada equipo. Antes de cada envío, SpacePost comprueba contra ella a todos los destinatarios (to, cc, bcc):
- Los destinatarios suprimidos se eliminan del mensaje y se genera un evento
email.suppressed. - Si no queda ningún destinatario, no se envía nada y el
last_eventdel correo essuppressed. - La cuota se cuenta cuando se acepta el correo, antes de la comprobación de supresión, por lo que los destinatarios suprimidos siguen contando para tu cuota mensual.
Las entradas se añaden automáticamente por rebotes duros, rebotes blandos repetidos y quejas, o manualmente con la API. Cada entrada tiene un reason (bounce, complaint, unsubscribe o manual) y un detail legible, como Hard bounce (NoEmail) o 3 soft bounces in 30 days (MailboxFull). Se conserva el primer motivo registrado para una dirección: añadir una dirección manualmente nunca sobrescribe un rebote ni una queja.
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"}Dominios de destinatarios inaccesibles
Sección titulada «Dominios de destinatarios inaccesibles»Si el dominio de un destinatario no acepta correo en absoluto (sin registros MX ni A), SpacePost omite a ese destinatario en lugar de intentar la entrega y genera email.suppressed. Esto protege tu tasa de rebotes. Consulta Verificación de la cuenta y límites de envío.
Uso de las direcciones de prueba
Sección titulada «Uso de las direcciones de prueba»bounced@test.spacepost.dev, complained@test.spacepost.dev y (tras tres envíos) softbounced@test.spacepost.dev crean entradas de supresión reales y cuentan para tus tasas. Elimínalas después de probar. Consulta Pruebas.