Destripando los códigos de error del protocolo SMTP

Error en el envío

Error en el envío

Cuando se remite un correo electrónico (vía SMTP) es posible que, en ocasiones, se produzca un fallo en la entrega debido a causas diversas. En el momento en que esto sucede, el servidor del destinatario se encarga de devolvernos un mensaje en el que se especifica el error en cuestión acontecido y, casi siempre, un mensaje orientativo (en inglés, generalmente) que detalla la incidencia. Este mensaje suele tener como asunto un texto del tipo Delivery Status Notification (Failure), Message Delivery Failure o Mail Delivery Failed: Returning Message To Sender, entre otros parecidos.

Muchos usuarios son incapaces de interpretar estos mensajes y se vuelven locos para desentrañar el significado del fallo en el envío. La realidad es que los códigos de error SMTP son bastantes sencillos de descifrar, porque están regidos por una combinación de guarismos que, de manera jerárquica, especifica al detalle qué es lo que ha sucedido. Sólo es cuestión de conocer su significado o, incluso sin conocerlo, entender la raíz básica de clasificación para, mediante una tabla, traducir cualquier contratiempo que haya sobrevenido.

En el RFC 1.893, de enero del año 1996, se especifica con todo detalle la estructura de los códigos de estado de las respuestas SMTP. Estos códigos están formados por tres valores numéricos separados entre sí por un punto, aunque es más que probable encontrarse con números de tres cifras juntas, esto es, sin separar. Si así ocurriera, ha de conocerse que, aunque no exista punto de división, la estructura tiene que entenderse de igual manera, es decir, primer número, segundo número y tercer número (como si estuvieran diferenciados).

La sintaxis, pues, de los códigos de error es CLASE.ASUNTO.DETALLE, donde, como decíamos, el valor de cada campo es un número de una sola cifra, por ejemplo 5.0.4 ó 4.5.2. El primero de los campos (CLASE) indica si la transacción se ha producido correctamente o no; el segundo valor (ASUNTO) especifica la fuente probable de la anomalía; el tercer y último valor (DETALLE) señala con precisión el error ocurrido.

1.0. Códigos primarios de estado

CLASE sólo admite tres valores, a saber: 2, 4 y 5. Los diferentes códigos indican tres posibles estados, que se explican a continuación. (Las distintas X referidas a los campos ASUNTO y DETALLE podrían contener cualquier número).

2.X.X Éxito. El correo ha sido entregado correctamente, la acción de entrega ha ofrecido un resultado positivo. El resto de campos pueden especificar con más detalle el porqué de la recepción de este código de estado, que simplemente puede ser una transformación requerida para el envío.

4.X.X Error transitorio persistente. La estructura SMTP del mensaje enviado es correcta, así como la dirección de envío, sin embargo ha ocurrido un error puntual que ha impedido entregar el mensaje correctamente, como por ejemplo un fallo del servidor o un buzón de usuario lleno. Un envío futuro puede terminar en situación de éxito sin ningún problema.

5.X.X Error permanente. Es un error que, por mucho que intentemos remitir de nuevo el correo en un futuro, se va a volver a producir, a no ser que realicemos algunos cambios en su envío. Direcciones de correo mal escritas, usuarios inexistentes u otras condiciones pueden producir este fallo.

2.0. Códigos secundarios de procedencia

Con respecto al segundo de los campos (ASUNTO), comentar que admite 8 valores: 0, 1, 2, 3, 4, 5, 6 y 7. Este valor indica la procedencia genérica del estado de error. Los distintos estados se desglosan a continuación.

X.0.X Estado indefinido. No hay disponible información adicional. Es un error genérico que se utiliza cuando el fallo ocurrido no está catalogado en ninguno de los otros códigos de error.

X.1.X Estado de la dirección. Fallo atribuible a la dirección del remitente o del destinatario, como errores de validación o equivocaciones en la sintaxis.

X.2.X Estado del buzón de correo. Errores que tienen que ver con la cuenta o el buzón de correo del destinatario. Buzones llenos o deshabilitados, correos demasiado grandes no admitidos, etcétera.

X.3.X Estado del sistema de correo. Fallos asignados al sistema de correo como, por ejemplo, que esté mal configurado o que el servidor no acepte mensajes entrantes.

X.4.X Estado de la red o de enrutamiento. Problemas de red. Mala conexión, falta de respuesta del servidor, congestión del sistema, etcétera.

X.5.X Estado de protocolo de entrega de correo. Estos fracasos incluyen toda la gama de problemas derivados de errores de aplicación o de conexiones poco fiables, como demasiados destinatarios en un correo, comandos SMTP inválidos o versiones erróneas del protocolo, entre otros.

X.6.X Estado del contenido del mensaje. Errores de contenido como, por ejemplo, conversiones fallidas o medios no compatibles.

X.7.X Estado de política o seguridad. Fallos del tipo de mensajes no autorizados, algoritmos criptográficos no soportados o conversiones de seguridad, entre otros.

3.0. Códigos terciarios de detalle (general)

Por último, la combinación de este segundo campo anterior (ASUNTO) con el tercero de los valores (DETALLE) ofrece una serie de códigos de error detallados que especifican pormenorizadamente el problema acaecido. El último de los campos admite valores entre 0 y 8, dependiendo del campo intermedio. Se esclarecen a continuación.

X.0.0 Estado indefinido u otro. Es el único código detallado indefinido. Puede ser utilizado para todos aquellos errores desconocidos de los que únicamente se sabe el campo CLASE.

3.1. Códigos terciarios de detalle (dirección)

X.1.0 Otro estado de dirección o indefinido. Algo en la dirección especificada produce este error.

X.1.1 Dirección del buzón de correo errónea. La dirección especificada del destinatario no es válida. Esto significa que lo que va por delante de la arroba (@) está mal escrito o no existe.

X.1.2 Dirección del sistema del destinatario errónea. La dirección del servidor de correo no es correcta. Esto significa que lo que va por detrás de la arroba (@) está mal escrito o no existe.

X.1.3 Error de sintaxis en la dirección de correo de destino. La dirección del destinatario (o destinatarios) especificada tiene errores de sintaxis o caracteres de válidos (espacio, caracteres especiales prohibidos…).

X.1.4 Dirección del destinatario ambigua. La dirección a la que enviamos el correo coincide con dos o más cuentas en el sistema receptor. Esto, aunque raro, puede suceder si el servidor de correo correspondiente utiliza un algoritmo heurístico para mapear direcciones específicas hacia cuentas de buzones locales.

X.1.5 Dirección de correo válida. Puede utilizarse para informes positivos de respuesta cuando sea necesario.

X.1.6 El buzón de correo de destino ha sido movido. La dirección de correo del destinatario fue válida anteriormente, pero ya no acepta correos o no existe.

X.1.7 Error de sintaxis en la dirección de correo del remitente. La dirección especificada del que escribe el mensaje tiene errores de sintaxis o caracteres de válidos (espacios, caracteres especiales prohibidos…).

X.1.8 Dirección del sistema del remitente errónea. La dirección del servidor de correo del remitente no es correcta o es incapaz de recibir mensajes de respuesta. Esto significa que lo que va por detrás de la arroba (@) está mal escrito o no existe.

3.2. Códigos terciarios de detalle (buzón)

X.2.0 Otro estado del buzón de correo o indefinido. El buzón existe, pero algo en él puede producir este error.

X.2.1 Buzón deshabilitado. La cuenta existe, pero no acepta correos.

X.2.2 Buzón lleno. El buzón de correo está lleno porque el usuario ha excedido su cuota contratada o su capacidad física. Se hará necesario borrar mensajes para liberar espacio.

X.2.3 La longitud del mensaje excede el límite administrativo. Este error se produce cuando el mensaje es de longitud o tamaño mayor (incluidos archivos adjuntos) que lo permitido por nuestro servidor de correo. Se impone trocearlo.

X.2.4 Problema de expansión de la lista de correo. El buzón es una dirección de una lista de correo que no puede ser expandida (con el comando EXPN del protocolo SMTP).

3.3. Códigos terciarios de detalle (sistema o servidor)

X.3.0 Otro estado del sistema de correo o indefinido. El servidor de destino existe y, normalmente, acepta la recepción de correos, pero algo ha causado este error.

X.3.1 El sistema de correo está lleno. La capacidad del servidor ha sido excedida. El receptor individual no puede hacer nada (eliminar correos) para solventar este error. Es un fallo del sistema general.

X.3.2 El sistema no acepta mensajes. El servidor donde está alojada la cuenta del recptor no acepta correos entrantes. Ejemplos de este fallo pueden ser una parada (programada o no) del sistema, una acción de mantenimiento o una carga excesiva.

X.3.3 El sistema no es capaz de realizar las funciones indicadas. Algunas de las características del mensaje no son soportadas por el servidor de destino.

X.3.4 Mensaje demasiado grande para el sistema. El mensaje tiene un tamaño mayor que el aceptado por el servidor, ya sea por razones físicas o administrativas.

X.3.5 Sistema incorrectamente configurado. El servidor de correo no está configurado correctamente para aceptar el mensaje enviado.

3.4. Códigos terciarios de detalle (red)

X.4.0 Otro estado de la red o indefinido. Existe un problema indefinido de red o de enrutamiento, pero no está claro de qué se trata o no puede ser expresado con otro código de estado.

X.4.1 No hay respuesta del servidor. La conexión no ha sido contestada porque el sistema remoto está demasiado ocupado o porque es incapaz de responder.

X.4.2 Mala conexión. La conexión con el servidor remoto de correo se ha establecido, pero ha sido imposible completar la transacción. Esto puede ser debido a un error de tiempo de espera o a una calidad baja o lenta en la conexión.

X.4.3 Fallo en el servidor de directorio. El sistema de red ha sido incapaz de redirigir el mensaje al buzón correspondiente porque el servidor de directorio no está disponible.

X.4.4 Imposible enrutar el mensaje. El servidor de correo ha sido incapaz de determinar el siguiente salto para un mensaje porque la información necesaria de enrutamiento no está disponible en el servidor de directorio.

X.4.5 Congestión en el sistema de correo. El servidor no es capaz de gestionar el envío porque se encuentra congestionado o demasiado ocupado.

X.4.6 Detectado un bucle de enrutamiento. Un bucle de este tipo causa que un mensaje de correo se encamine muchas veces a su destino, ya sea por una configuración incorrecta en las tablas de enrutamiento o por otra causa.

X.4.7 El tiempo de envío ha expirado. El mensaje ha sido considerado demasiado viejo por el sistema, por lo que lo ha rechazado al estar demasiado tiempo en el servidor.

3.5. Códigos terciarios de detalle (protocolo)

X.5.0 Otro estado del protocolo de entrega de correo o indefinido. Un error con el protocolo necesario para enviar el mensaje al siguiente salto y el problema no puede ser correctamente expresado con otro código de estado.

X.5.1 Comando no válido. El comando de transacción del protocolo no es válido o compatible.

X.5.2 Error de sintaxis. El comando de correo no puede ser interpretado porque tiene un error de sintaxis o no se reconoce.

X.5.3 Demasiados receptores. Se han especificado más correos de recepción que los que permite el protocolo.

X.5.4 Argumentos de comando no válidos. Los argumentos modificadores del comando no son correctos o se refieren a funciones no reconocidas.

X.5.5 Versión de protocolo incorrecta. Existe una versión distinta entre servidores que no puede ser resuelta automáticamente.

3.6. Códigos terciarios de detalle (contenido)

X.6.0 Otro estado del contenido del mensaje de correo o indefinido. Algo en el contenido del correo ha provocado este error.

X.6.1 Medio no soportado. El medio del mensaje no es compatible con el protocolo del servidor de entrega.

X.6.2 Se requiere conversión y está prohibida. El contenido del mensaje debe ser convertido antes de que pueda ser enviado y dicha conversión no está permitida por el servidor. Tales prohibiciones pueden ser expresiones del remitente o políticas del receptor.

X.6.3 Se requiere conversión y no está soportada. El contenido del mensaje debe ser convertido antes de que pueda ser enviado y dicha conversión no está soportada por el servidor.

X.6.4 Conversión con pérdida. Esta es una advertencia mandada al remitente cuando el mensaje se envió con éxito pero la entrega requiere una conversión en la que algunos datos se van a perder.

X.6.5 Fallo en la conversión. Se requería una conversión, pero ha fallado.

3.7. Códigos terciarios de detalle (seguridad)

X.7.0 Otro estado de seguridad o indefinido. Algo en el estado de seguridad ha provocado este error. Algo que no puede ser correctamente expresado con otro código de estado.

X.7.1 Envío no autorizado; mensaje rechazado. El remitente no está autorizado para enviar al destinatario en cuestión. Puede ser un fallo resultante de una mala o inadecuada aplicación de filtros de envío o recepción.

X.7.2 Prohibida la expansión de la lista de correo. El remitente no está autorizado para enviar un mensaje a la lista de correo.

X.7.3 Se requiere conversión de seguridad, pero no es posible. Es necesario aplicar una conversión de un protocolo de seguridad a otro, sin embargo, dicha conversión es imposible de llevar a cabo.

X.7.4 Características de seguridad no soportadas. El mensaje contiene características de seguridad (como, por ejemplo, autenticación segura) que no son compatibles con el protocolo de envío.

X.7.5 Fallo criptográfico. El sistema de transporte autorizado para validar o descifrar un mensaje no pudo hacerlo porque existe información necesaria no válida (la clave, por ejemplo).

X.7.6 Algoritmo criptográfico no soportado. El algoritmo necesario para desencriptar el mensaje no es soportado por el sistema de transporte.

X.7.7 Fallo en la integridad del mensaje. El mensaje está alterado o corrompido.

Hasta aquí todos los códigos disponibles. Los mensajes anejos a los errores SMTP suelen ser bastante esclarecedores con respecto al fallo producido. No existe una nomenclatura específica para estos mensajes, pues en cada servidor pueden ser configurados a placer. Las listas anteriores nos pueden ayudar a descifrar un código de error en un momento dado.

Terminaremos con un par de ejemplos. Primero: un código 5.1.0 (o también 510) indica que el error es permanente (5), que proviene de la dirección electrónica del destinatario (1) y que algo en ella lo ha producido (0). Estamos ante un claro error de escritura errónea de la dirección.

Segundo: un código 4.2.2 (o también 422) indica que el error es transitorio (4), que proviene de algo en el buzón de correo (2) y que, específicamente, es que dicho buzón del destinatario está lleno y no puede recibir más mensajes (2).

Chupado.

6 comentarios a “Destripando los códigos de error del protocolo SMTP”

Escribe tu comentario

eBook ‘retroPLOF!’

retroPLOF!

Especifica tu dirección de correo electrónico y pulsa 'Comprar ahora'. Puedes pagar con tu cuenta de PayPal o con cualquier tarjeta bancaria.

E-mail envío eBook:

Sigue teknoPLOF! vía…
 
RSS
Twitter
Facebook
Google
 
Ready Set Click!

Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación. Más información.

CERRAR