RFC 3461: Extensión de Notificación de Estado de Entrega SMTP
Por qué existe esto
SMTP básico (RFC 5321) solo garantiza que escucharás sobre fallos — el servidor receptor genera un mensaje de rebote si la entrega finalmente falla. Pero los remitentes a menudo necesitan más:
- Confirmación positiva de que un mensaje fue entregado en el buzón del destinatario
- Notificaciones de retrasos cuando un mensaje está atrapado en una cola
- Informes selectivos — solo notificar en caso de fallo, o solo en caso de éxito
- Seguimiento a nivel de envío usando un identificador opaco que el remitente puede correlacionar con el envío original
Sin esta extensión, los remitentes están ciegos: el silencio podría significar una entrega exitosa o un mensaje perdido. RFC 3461 agrega parámetros SMTP que permiten al MTA de origen solicitar explícitamente notificaciones de estado de entrega (DSN) y controlar su contenido.
Cómo funciona
La extensión DSN se negocia durante el protocolo de enlace EHLO de SMTP. Cuando el servidor receptor anuncia DSN, el remitente puede usar dos nuevos conjuntos de parámetros:
Parámetros MAIL FROM
-
RET=FULLoRET=HDRS— controla si los mensajes DSN incluyen el cuerpo completo del mensaje original o solo los encabezados.HDRSse recomienda para mensajes grandes. -
ENVID=valor— un identificador de envío (hasta 100 caracteres codificados en xtext) que se devolverá en cualquier DSN, permitiendo al remitente correlacionar la notificación con el mensaje original.
Parámetros RCPT TO
-
NOTIFY=condiciones— una lista separada por comas de:SUCCESS,FAILURE,DELAY, o el valor especialNEVER. Esto controla cuándo se genera un DSN. -
ORCPT=tipo;dirección— la dirección de destinatario original (antes de cualquier expansión de alias o reenvío), para que el DSN pueda informar la dirección que el remitente realmente pretendía.
Ejemplo de sesión SMTP
EHLO sender.example.com 250-mail.example.org Hello 250-SIZE 52428800 250-DSN 250 STARTTLS ; Solicitar DSN con ID de envío, devolver solo encabezados en rebote MAIL FROM:<alice@sender.example.com> RET=HDRS ENVID=msg-20260311-0042 250 OK ; Notificar en caso de éxito o fallo, preservar destinatario original RCPT TO:<bob@example.org> NOTIFY=SUCCESS,FAILURE ORCPT=rfc822;bob@example.org 250 Accepted ; Suprimir todos los DSN para este destinatario RCPT TO:<bcc-copy@archive.example.com> NOTIFY=NEVER 250 Accepted DATA 354 Start mail input [contenido del mensaje] . 250 OK
Detalles técnicos clave
Valores NOTIFY
| Valor | DSN generado cuando |
|---|---|
SUCCESS |
Mensaje entregado exitosamente en el buzón del destinatario |
FAILURE |
La entrega falló permanentemente (rebote duro) |
DELAY |
La entrega se retrasa pero aún se está reintentando |
NEVER |
Ningún DSN bajo ninguna circunstancia (no se puede combinar con otros valores) |
Si NOTIFY se omite, el comportamiento predeterminado es equivalente a NOTIFY=FAILURE — solo recibes notificación en caso de fallo permanente.
Codificación ENVID
El valor ENVID usa codificación xtext: los caracteres ASCII imprimibles pasan sin cambios, pero + y = (y caracteres fuera del rango ASCII imprimible) se codifican como +XX donde XX es el valor hexadecimal. Esto mantiene el parámetro seguro para el transporte SMTP.
Comportamiento de relé
Los MTA intermedios que admiten DSN deben propagar los parámetros DSN al relé. Si un MTA intermedio no admite DSN, igualmente debe generar mensajes de rebote apropiados según las reglas SMTP estándar, aunque los controles DSN de grano fino se perderán.
Errores comunes
-
Combinar NEVER con otros valores.
NOTIFY=NEVER,FAILUREno es válido.NEVERdebe aparecer solo. -
Usar parámetros DSN sin verificar EHLO. Si el servidor no anuncia
DSN, incluir estos parámetros causará un error de sintaxis (código 501). - Esperar DSN de todos los servidores. La compatibilidad con DSN es opcional. Muchos proveedores grandes de buzones no la anuncian, lo que significa que no puedes forzar a Gmail u Outlook a enviarte notificaciones de éxito.
- Usar RET=FULL para mensajes grandes. Esto causa que el mensaje original completo (incluidos los adjuntos) se incluya en el DSN, lo que puede alcanzar límites de tamaño o desperdiciar ancho de banda.
- Olvidar ORCPT durante el reenvío. Si tu servidor expande alias o reenvía correo, omitir ORCPT significa que el DSN informará la dirección final, no la que el remitente usó.
Impacto en la entrega
La compatibilidad con DSN es infraestructura crítica para el envío de correo electrónico profesional:
-
Procesamiento de rebotes. El manejo programático de rebotes depende de DSN para identificar qué destinatario falló y por qué. El parámetro
ENVIDte permite correlacionar rebotes con campañas o transacciones específicas. -
Higiene de lista.
NOTIFY=FAILURE(el predeterminado) asegura que aprendas sobre direcciones inválidas. La eliminación rápida de direcciones que rebotan protege tu reputación de remitente. -
Supresión de tráfico innecesario. Usa
NOTIFY=NEVERpara copias BCC o direcciones de archivo donde no necesitas confirmación de entrega. -
Conciencia de retrasos.
NOTIFY=DELAYte alerta sobre problemas de entrega antes de que se conviertan en fallos permanentes, dándote tiempo para investigar.