RFC 3463: Códigos de Estado del Sistema de Correo Mejorado
ELI5: SMTP básico te da un código de respuesta de tres dígitos como "550" que significa "algo falló". ¿Pero por qué falló? ¿Dirección incorrecta? ¿Buzón lleno? ¿Servidor sobrecargado? Los códigos de estado mejorados agregan un código de tres partes más específico como `5.1.1` (buzón de destino incorrecto) para que tu software pueda distinguir la diferencia y tomar la acción correcta.
Por Qué Existe
Los códigos de respuesta SMTP (RFC 5321) utilizan números de tres dígitos: 250 significa éxito, 550 significa fallo permanente, 421 significa problema temporal. Pero estos códigos son demasiado generales para el procesamiento automatizado. Un "550" podría significar:
- El buzón no existe
- El dominio no existe
- El remitente está bloqueado por política
- El contenido del mensaje fue rechazado
Cada uno de estos requiere una respuesta diferente del remitente. Los códigos de estado mejorados resuelven esto añadiendo un código estructurado clase.asunto.detalle que identifica precisamente el problema. Estos códigos aparecen en respuestas SMTP (mediante la extensión ENHANCEDSTATUSCODES) y en reportes DSN (RFC 3464) en el campo Status.
Cómo Funciona
Los códigos de estado mejorados siguen el formato X.Y.Z donde cada componente tiene un significado definido:
Estructura del Código
| Componente | Nombre | Significado |
|---|---|---|
X |
Clase | Éxito (2), fallo temporal (4), o fallo permanente (5) |
Y |
Asunto | Categoría del problema (dirección, buzón, sistema de correo, red, protocolo, contenido, seguridad) |
Z |
Detalle | Condición específica dentro de la categoría |
Ejemplo de Respuesta SMTP
RCPT TO:<user@example.org> 550 5.1.1 The email account that you tried to reach does not exist ^^^^^ | | | +-- detalle 1 = dirección de buzón de destino incorrecta +------ asunto 1 = estado de direccionamiento clase 5 = fallo permanente
En un Reporte DSN
Final-Recipient: rfc822;user@example.org Action: failed Status: 5.1.1 Diagnostic-Code: smtp; 550 5.1.1 User unknown
Detalles Técnicos Clave
Valores de Clase
| Clase | Significado | Acción del Remitente |
|---|---|---|
2.X.X |
Éxito | El mensaje fue aceptado o entregado. No se requiere acción. |
4.X.X |
Fallo Transitorio Persistente | Reintentar más tarde. La condición puede resolverse por sí sola. |
5.X.X |
Fallo Permanente | Dejar de reintentar. El mensaje nunca será entregado a esta dirección tal como está. |
Valores de Asunto
| Asunto | Categoría | Ejemplos |
|---|---|---|
X.0.X |
Otro / Indefinido | No clasificado de otra manera |
X.1.X |
Direccionamiento | Buzón incorrecto, dominio incorrecto, remitente incorrecto |
X.2.X |
Buzón | Buzón lleno, deshabilitado, no acepta mensajes |
X.3.X |
Sistema de Correo | Sistema de correo lleno, no acepta mensajes, incapaz de características seleccionadas |
X.4.X |
Red y Enrutamiento | Sin respuesta del host, conexión deficiente, error de enrutamiento |
X.5.X |
Protocolo de Entrega de Correo | Comando inválido, error de sintaxis del protocolo |
X.6.X |
Contenido del Mensaje | Medio no soportado, conversión fallida |
X.7.X |
Seguridad / Política | Autenticación requerida, remitente bloqueado, encriptación necesaria |
Códigos Más Comunes para Remitentes de Correo
| Código | Significado | Acción |
|---|---|---|
5.1.1 |
Dirección de buzón de destino incorrecta | Eliminar de la lista (rechazo permanente) |
5.1.2 |
Dirección de sistema de destino incorrecta (dominio) | Eliminar de la lista |
5.2.1 |
Buzón deshabilitado, no acepta mensajes | Eliminar de la lista |
4.2.2 |
Buzón lleno | Reintentar más tarde; suprimir después de fallos repetidos |
5.7.1 |
Entrega no autorizada, mensaje rechazado | Verificar autenticación y reputación del remitente |
4.7.1 |
Fallo temporal de autenticación | Reintentar; verificar registros SPF/DKIM/DMARC |
5.7.26 |
Violación de política DMARC | Corregir alineación DMARC (SPF o DKIM debe pasar con dominio alineado) |
5.7.27 |
Dirección de remitente tiene MX nulo | Añadir un registro MX o A válido para tu dominio de envío |
4.4.1 |
Conexión agotada por tiempo | Reintentar; verificar DNS y conectividad de red |
5.3.4 |
Mensaje demasiado grande para el sistema | Reducir tamaño del mensaje o archivos adjuntos |
Errores Comunes
-
Solo verificar el código de respuesta SMTP, ignorando el código mejorado. Un "550" te dice que es permanente, pero
5.1.1(usuario desconocido) y5.7.1(bloqueo por política) requieren respuestas muy diferentes. Siempre analiza el código mejorado. -
Tratar todos los códigos 5.X.X como "eliminar de la lista". El código
5.7.1a menudo significa un bloqueo por política temporal (filtro de spam, limitación de velocidad), no una dirección inválida. Eliminar ciegamente direcciones en cada fallo permanente causa una reducción innecesaria de la lista. -
Ignorar el dígito de clase. El primer dígito es el más importante.
4.2.2(buzón lleno, transitorio) y5.2.2(buzón lleno, permanente) requieren manejo diferente. Algunos proveedores usan 4.X.X para problemas de cuota que se resuelven, y 5.X.X solo después de lleno prolongado. - Codificar códigos específicos. El registro de código de estado mejorado (RFC 5248) es extensible. Se añaden nuevos códigos con el tiempo. Analiza la clase y el asunto para decisiones de enrutamiento, y registra el código completo para diagnósticos.
-
Confundir códigos de respuesta SMTP con códigos de estado mejorados. El código SMTP de tres dígitos (550) y el código mejorado (5.1.1) son separados. El código mejorado aparece después del código SMTP en la línea de respuesta, o en el campo
Statusde un DSN.
Impacto en la Entregabilidad
- Precisión en la clasificación de rebotes. Los códigos de estado mejorados son la entrada principal para el procesamiento automatizado de rebotes. La clasificación correcta de rebotes permanentes (eliminar) vs. rebotes suaves (reintentar) vs. bloqueos por política (investigar) afecta directamente tu reputación de remitente y calidad de la lista.
-
Lógica de reintento consciente de reputación. Una respuesta
4.7.1(fallo temporal de autenticación) debe desencadenar una verificación de tus registros SPF/DKIM/DMARC, no solo un reintento ciego. Un4.2.2(buzón lleno) es un problema completamente diferente. -
Diagnósticos y depuración. Cuando la entregabilidad cae, los códigos de estado mejorados en tus registros de rebotes te dicen exactamente qué está pasando. Un pico en respuestas
5.7.1sugiere un problema de reputación; un pico en5.1.1sugiere datos de lista incorrectos. -
Comportamiento específico del proveedor. Gmail, Microsoft y Yahoo todos utilizan códigos de estado mejorados, pero pueden asignar códigos ligeramente diferentes a la misma condición. Usa los códigos como guía y correlaciona con el texto
Diagnostic-Codepara contexto completo.