Entregabilidad de Correo en 10 Minutos

La entrega de correo tiene dos resultados separados: el servidor receptor puede aceptar el mensaje, y sus filtros pueden mandarlo igual a spam. La autenticación demuestra la identidad del dominio; no compra un lugar en la bandeja de entrada. Mi consejo sin adornos: no mandes correo de marketing por el mismo flujo que los restablecimientos de contraseña.

🎙️ Publicado y grabado: ·

01Separa el flujo transaccional del de marketing

El correo transaccional lo dispara una acción del usuario: restablecer la contraseña, un recibo, una alerta de seguridad, un aviso de la cuenta. El correo de marketing es promocional o editorial y tiene que ser fácil de dar de baja. Tienen urgencia, consentimiento, volumen y patrones de queja distintos. Ponlos en subdominios separados, en flujos de envío separados y, cuando el volumen lo justifique, en pools de IP separados.

# One practical identity split
[email protected]   # transactional
[email protected]  # marketing

Return-Path: [email protected]
DKIM-Signature: ... d=notify.example.com; s=tx2026;

List-Unsubscribe: <https://example.com/unsubscribe/...>
List-Unsubscribe-Post: List-Unsubscribe=One-Click
Por qué importa la separación

Una campaña floja puede generar quejas y frenar la reputación que usan tus correos urgentes de inicio de sesión. Separar los flujos crea una frontera para la reputación, los límites de envío, las reglas de supresión y el diagnóstico de incidentes. Y no llames «transaccional» a una promoción semanal solo porque la cuenta existe.

02El envelope de SMTP no es el From que se ve

SMTP transporta un remitente de envelope y unos destinatarios de envelope antes de transportar los headers del mensaje. El remitente del envelope, que después aparece como Return-Path, recibe los rebotes y es la identidad que evalúa SPF. La dirección del header From es la que ve una persona y la que protege DMARC. Pueden ser distintas, pero sus dominios necesitan una alineación deliberada.

S: 220 mx.receiver.test ESMTP
C: EHLO mail.notify.example.com
C: MAIL FROM:<[email protected]>
C: RCPT TO:<[email protected]>
C: DATA
C: From: Example Receipts <[email protected]>
C: To: Alex <[email protected]>
C: Subject: Your receipt

Envelope MAIL FROM → SPF and bounces
Header From        → visible identity and DMARC alignment

Cuando un mensaje rebota, guarda la respuesta de SMTP, el queue ID, el destinatario, el flujo de envío y el message ID del proveedor. Una captura de pantalla que dice «el correo falló» tira a la basura la única evidencia que servía.

03SPF autoriza al remitente del envelope

SPF es una política en un registro TXT de DNS sobre el dominio del remitente del envelope. Declara qué hosts pueden enviar usando ese dominio. Publica exactamente un registro SPF por dominio, incluye a todos los remitentes legítimos, quédate por debajo del límite de diez consultas DNS y termina con una política deliberada. SPF por sí solo no valida la dirección From que se ve.

# DNS TXT at bounces.notify.example.com
v=spf1 include:spf.mail-provider.example -all

Received-SPF: softfail (domain of transitioning
[email protected] does not designate 192.0.2.44
as permitted sender) client-ip=192.0.2.44;
SPF softfail, resuelto

Uno: lee el Return-Path para saber qué dominio se revisó de verdad. Dos: anota la IP del cliente que aparece en Received-SPF. Tres: consulta los registros TXT de ese dominio exacto y expande los includes. Cuatro: agrega el include o la IP que documenta tu proveedor, quita remitentes que ya no existen y deja un solo registro SPF. Cinco: espera la propagación del DNS y manda un mensaje nuevo. No pegues un segundo v=spf1 al lado del primero; varios registros producen un error permanente.

04DKIM firma el mensaje que llegó

DKIM agrega una firma criptográfica que cubre ciertos headers y el cuerpo. La firma nombra un dominio con d y un selector con s. El receptor busca la clave pública en el selector, seguido de _domainkey y el dominio que firma. Usa claves de al menos 2048 bits cuando estén soportadas, rota los selectores y deja publicada la clave vieja mientras el correo antiguo todavía pueda verificarse.

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=notify.example.com; s=tx2026;
 h=from:to:subject:date:message-id; bh=...; b=...

Authentication-Results: mx.receiver.test;
 dkim=fail (DKIM signature verification failed)
 header.d=notify.example.com header.s=tx2026;
DKIM verification failed, resuelto

Uno: copia los valores de d y s de la firma que falló. Dos: revisa el registro TXT en tx2026._domainkey.notify.example.com. Tres: confirma que la clave pública corresponde al selector privado que usó el remitente. Cuatro: revisa si un relay, una herramienta de firma corporativa o una lista de correo modificó headers firmados o el cuerpo después de firmar. Cinco: firma después de todas las modificaciones y manda un mensaje nuevo. Reutilizar el nombre equivocado de selector es más común que una criptografía rota.

05DMARC exige alineación, no dos insignias verdes

DMARC pasa cuando SPF pasa con un dominio de envelope alineado, o cuando DKIM pasa con un dominio de firma alineado. La alineación compara esos dominios con el dominio del header From que se ve. La alineación relajada acepta subdominios del mismo dominio organizacional; la estricta exige coincidencia exacta. Que SPF pase para el dominio de rebotes de tu proveedor no ayuda a tu resultado de DMARC.

From: [email protected]
Return-Path: [email protected]   # SPF pass, not aligned
DKIM-Signature: d=notify.example.com; ...   # DKIM pass, aligned relaxed

# Start by collecting reports; enforce after every sender is known.
_dmarc.example.com TXT
v=DMARC1; p=none; rua=mailto:[email protected]; pct=100

# Later: p=quarantine, then p=reject
550 5.7.26 This mail is unauthenticated, which poses a security risk
to the sender and users, and has been blocked. The sender must
authenticate with at least one of SPF or DKIM.
550 5.7.26, resuelto

Uno: revisa Authentication-Results en un mensaje fallido e identifica los resultados de SPF, DKIM y DMARC. Dos: verifica SPF para el dominio del Return-Path y el DNS de DKIM para el selector exacto. Tres: alinea al menos una identidad que pase con el dominio del header From. Cuatro: vuelve a probar desde el flujo real de producción, no desde la vista previa de un panel. Cinco: deja DMARC en modo monitoreo hasta que los reportes muestren todas las fuentes legítimas; bajar el nivel de exigencia no repara una autenticación que falta.

06PTR y HELO deben describir al host que envía

Un servidor receptor ve la IP que se conecta y el hostname que se anuncia en EHLO o HELO. La IP debería resolver hacia atrás con PTR a un hostname de correo real, y ese hostname debería resolver hacia adelante a la misma IP. El PTR lo configura el dueño de la IP, normalmente tu hosting o tu proveedor de correo. Un hosting de DNS común no puede crear DNS inverso para una dirección que no controlas.

192.0.2.44 PTR mail.notify.example.com.
mail.notify.example.com A 192.0.2.44
EHLO mail.notify.example.com

550 5.7.1 Client host rejected: cannot find your reverse hostname

# Verify both directions
dig -x 192.0.2.44 +short
mail.notify.example.com.
dig mail.notify.example.com A +short
192.0.2.44

Para ese rechazo, primero confirma la IP de salida en el Received header externo más antiguo. Pídele al dueño de la IP que configure su PTR, crea el registro A que coincide, configura el HELO del servidor de correo con ese hostname y vuelve a conectar. Un PTR que apunta a un nombre genérico de nube resuelve, sí, pero sigue siendo una identidad pobre.

07La reputación sigue al comportamiento, no al DNS perfecto

La autenticación responde quién mandó el correo. La reputación pregunta si los destinatarios quieren correo de ese dominio y esa IP. Cuentan la tasa de quejas, los rebotes duros, las spam traps, la interacción, los picos de volumen y la consistencia de los mensajes. Una IP dedicada recién creada no tiene reputación útil; se calienta con correo deseado y un volumen diario predecible. Con volumen bajo, un pool compartido con buena fama suele ser más seguro que tu IP fría.

# Watch trends by stream and mailbox provider
accepted rate      99.4%
temporary deferral  2.1%
hard bounce         0.6%
complaint            0.08%

421 4.7.0 Temporary System Problem. Try again later.
451 4.7.1 Please try again later

Ante un aplazamiento temporal, guarda la respuesta original, baja el ritmo de envío hacia ese destino, reintenta con backoff exponencial y jitter, y busca algún cambio reciente de volumen o de quejas. No reintentes cada minuto desde varios servidores; eso convierte un límite de ritmo en comportamiento abusivo. Recuperar reputación es, sobre todo, mandar menos correo no deseado de forma constante.

08Los rebotes y las quejas son señales de control

Un rebote duro dice que la dirección es permanentemente inentregable y hay que suprimirla de inmediato. Un rebote suave es temporal y se puede reintentar con un límite. Una queja dice que el destinatario marcó el mensaje como spam; suprime a esa persona del flujo de marketing correspondiente enseguida. Convierte los eventos del proveedor en motivo, enhanced status code, destinatario, campaña y clase permanente o transitoria.

550 5.1.1 The email account that you tried to reach does not exist.
552 5.2.2 Mailbox full
421 4.4.2 Connection timed out

5.1.1 → hard bounce → suppress address now
5.2.2 → policy-dependent retry, then suppress after limit
4.4.2 → retry with backoff; preserve attempt history
complaint event → suppress immediately; audit source and campaign
No borres la distinción

Muchos sistemas guardan cualquier fallo como «rebotado». Eso deja a operaciones a ciegas. Uno: conserva el diagnóstico crudo de SMTP. Dos: extrae el enhanced status code. Tres: clasifica entre permanente, transitorio, queja o bloqueo por política. Cuatro: aplica una regla de supresión propia de ese flujo. Cinco: muestra el motivo al equipo de soporte sin exponer datos de los destinatarios a todo el mundo.

09La higiene de listas empieza con el consentimiento

Usa doble opt-in cuando la calidad de las direcciones importe, registra el origen y la hora del consentimiento, valida los errores de sintaxis obvios al momento de la captura y manda el tipo de correo que prometiste. Quita rebotes duros, quejas y destinatarios sin interacción prolongada según una política escrita. Nunca compres una lista. Trae direcciones muertas, traps y gente que no pidió saber de ti.

# Minimum subscription audit record
address: [email protected]
source: pricing-page-form
consented_at: 2026-07-25T10:42:13Z
confirmed_at: 2026-07-25T10:44:02Z
policy_version: marketing-v3

# Every marketing message
visible unsubscribe link
one-click unsubscribe headers
working preference endpoint
suppression applied before queueing

No borres a la gente sin interacción solo para que el gráfico de aperturas se vea mejor, y tampoco les sigas escribiendo para siempre. Define un flujo de despedida acorde a tu frecuencia de envío. Y trata las aperturas con desconfianza, porque los proxies de privacidad las inflan; los clics, las respuestas, las compras y las preferencias declaradas son señales más fuertes.

10Depura los headers desde el receptor hacia atrás

Para un mensaje entregado, descarga el código fuente original. Lee los Received headers de abajo hacia arriba para reconstruir la ruta. Busca el Authentication-Results que agregó el receptor y compara el header From, el Return-Path, los valores d y s de DKIM, el Message-ID, la fecha y los headers de baja. Para un mensaje rechazado, empieza por la respuesta de SMTP, porque puede que no existan headers finales.

# Header triage
Authentication-Results: spf=pass; dkim=pass; dmarc=pass
From: visible domain used for DMARC
Return-Path: envelope domain used for SPF and bounces
DKIM-Signature: d= signing domain; s= selector
Received: route, timestamps, connecting identities
Message-ID: stable correlation key

# Fix order
1. Capture raw SMTP reply or raw received message
2. Identify stream, provider message ID, recipient, and timestamp
3. Verify PTR ↔ A and HELO for the outbound IP
4. Verify one SPF record for the Return-Path domain
5. Verify DKIM selector DNS and post-signing modifications
6. Verify SPF or DKIM alignment with header From
7. Check bounce, complaint, volume, and reputation trends
8. Send a new test; old messages do not re-authenticate

# Meaning of common results
550 5.7.26 unauthenticated → repair SPF/DKIM and alignment
SPF softfail → actual IP not authorized for envelope domain
DKIM signature failed → key mismatch or message changed
550 5.1.1 → suppress nonexistent recipient
421 / 451 → defer and retry with controlled backoff

Mi orden es identidad primero, reputación segundo, contenido al final. Si el servidor dice SPF softfail, cambiar el asunto es superstición. Si la autenticación pasa pero un proveedor de buzones frena una campaña, revisa ahí la calidad de la audiencia, las quejas y el volumen. La entregabilidad es un ciclo de retroalimentación operativo, no una tarea de DNS que se termina una vez.

Tell me what missed

A correction is more useful than a compliment. This goes straight to the person who writes SwiftGrasp.

Was this page useful?
0/1000

Please do not include passwords, private keys, or personal information.