← RFC Reference

RFC 3464: Formato de Notificación de Estado de Entrega

Current Standard Delivery Status & Bounce Handling Obsoletes RFC 1894 Published March 2026
ELI5: Cuando un paquete no puede ser entregado, el mensajero te da un formulario explicando qué sucedió. RFC 3464 define el formulario estandarizado que los servidores de correo completan cuando un mensaje rebota, se retrasa o se entrega exitosamente — estructurado para que el software pueda leerlo automáticamente.

Por qué existe esto

Antes de que se estandarizara el formato DSN, cada servidor de correo generaba mensajes de rechazo en su propio formato de texto libre. Analizar estos "mensajes de rechazo" requería heurísticas frágiles — expresiones regulares que se rompían siempre que un servidor cambiaba su redacción. RFC 3464 define un tipo de contenido MIME legible por máquinas (message/delivery-status) que hace que el procesamiento automatizado de rechazos sea confiable.

Este RFC funciona junto con RFC 3461 (que define cómo solicitar DSN a nivel SMTP) y RFC 3462 (que define el contenedor multipart/report que envuelve el DSN).

Cómo funciona

Un mensaje DSN es un mensaje MIME multipart/report con report-type=delivery-status. Contiene hasta tres partes MIME:

  1. Explicación legible por humanos (text/plain) — texto libre para personas.
  2. Estado legible por máquina (message/delivery-status) — los datos estructurados definidos por este RFC.
  3. Mensaje original (message/rfc822 o text/rfc822-headers) — el original completo o solo sus encabezados, según el parámetro RET de RFC 3461.

El cuerpo delivery-status

La parte message/delivery-status contiene grupos de campos similares a encabezados separados por líneas en blanco:

; Campos por mensaje (un grupo)
Reporting-MTA: dns; mail.example.org
Original-Envelope-Id: msg-20260311-0042
Arrival-Date: Wed, 11 Mar 2026 10:30:00 -0500

; Campos por destinatario (un grupo por destinatario)
Original-Recipient: rfc822;bob@example.org
Final-Recipient: rfc822;bob@example.org
Action: failed
Status: 5.1.1
Diagnostic-Code: smtp; 550 5.1.1 User unknown
Last-Attempt-Date: Wed, 11 Mar 2026 10:30:05 -0500

Detalles técnicos clave

Campos por mensaje

Campo Requerido Descripción
Reporting-MTA El MTA que generó este DSN, como nombre de host DNS
Original-Envelope-Id No El ENVID de la transacción SMTP original (RFC 3461)
DSN-Gateway No Presente cuando el DSN fue traducido desde un sistema de correo externo
Received-From-MTA No El MTA que entregó el mensaje al Reporting-MTA
Arrival-Date No Cuándo llegó el mensaje original al Reporting-MTA

Campos por destinatario

Campo Requerido Descripción
Final-Recipient La dirección del destinatario a la que el MTA intentó entregar realmente
Original-Recipient No El valor ORCPT de la sesión SMTP — la dirección que usó el remitente
Action Uno de: failed, delayed, delivered, relayed, expanded
Status Código de estado mejorado según RFC 3463 (p. ej., 5.1.1)
Diagnostic-Code No La cadena de error actual del servidor remoto, prefijada por tipo (generalmente smtp)
Remote-MTA No El MTA que devolvió el error
Last-Attempt-Date No Cuándo se realizó el último intento de entrega
Will-Retry-Until No Para acciones delayed, cuándo el MTA se rendirá

Valores de acción

Acción Significado
failed Fallo permanente — el mensaje no será entregado (rechazo duro)
delayed Fallo temporal — aún reintentos (rechazo suave)
delivered Entregado exitosamente en el buzón del destinatario
relayed Reenviado a un entorno que puede no generar más DSN
expanded Entregado a una lista de correo o alias que se expandió a múltiples destinatarios

Ejemplo de mensaje DSN completo

From: mailer-daemon@mail.example.org
To: alice@sender.example.com
Subject: Delivery Status Notification (Failure)
MIME-Version: 1.0
Content-Type: multipart/report; report-type=delivery-status;
    boundary="DSN-BOUNDARY-001"

--DSN-BOUNDARY-001
Content-Type: text/plain

Your message to bob@example.org could not be delivered.
The recipient's mailbox does not exist.

--DSN-BOUNDARY-001
Content-Type: message/delivery-status

Reporting-MTA: dns; mail.example.org
Original-Envelope-Id: msg-20260311-0042
Arrival-Date: Wed, 11 Mar 2026 10:30:00 -0500

Final-Recipient: rfc822;bob@example.org
Action: failed
Status: 5.1.1
Diagnostic-Code: smtp; 550 5.1.1 User unknown

--DSN-BOUNDARY-001
Content-Type: text/rfc822-headers

From: alice@sender.example.com
To: bob@example.org
Subject: Meeting tomorrow
Message-ID: <abc123@sender.example.com>

--DSN-BOUNDARY-001--

Errores comunes

Impacto en la capacidad de entrega

Related RFCs