técnico · respuesta con fuentes

Autenticación SMTP: definición e implementación técnica

La autenticación SMTP es un mecanismo de seguridad que exige a un cliente de correo o a una aplicación demostrar su identidad ante un servidor SMTP antes de poder enviar correo. Evita los relays abiertos al garantizar que solo los usuarios autorizados puedan enrutar mensajes a través del servidor, normalmente con un nombre de usuario y una contraseña mediante la extensión AUTH.

Proceso técnico

El proceso empieza cuando el cliente se conecta al servidor y emite el comando EHLO. El servidor responde con la lista de extensiones admitidas, entre ellas AUTH. A continuación, el cliente elige un mecanismo de autenticación, como PLAIN o LOGIN, y transmite las credenciales. Si el servidor valida esas credenciales con su base de datos de usuarios, concede al cliente permiso para enviar los comandos MAIL FROM y RCPT TO.

Por qué importa a los remitentes

Sin autenticación, un servidor actúa como relay abierto y permite que cualquiera envíe correo. Esto conduce rápidamente a que la IP acabe en listas de bloqueo, porque los spammers aprovechan el puerto abierto. Implementar la autenticación SMTP garantiza que solo las aplicaciones legítimas puedan enviar correo, lo que es un requisito fundamental para mantener una reputación del remitente limpia y evitar que los servidores de correo receptores rechacen los mensajes.

Notas operativas y errores

Un error habitual es enviar las credenciales por conexiones sin cifrar. Para evitar el robo de credenciales, la autenticación siempre debe combinarse con STARTTLS o con TLS implícito. Otro problema frecuente es usar métodos de autenticación obsoletos que los proveedores modernos no admiten. Los desarrolladores pueden usar las herramientas gratuitas de SendHQ (https://sendhq.cc/tools) para verificar su configuración de DNS y autenticación.

Ejemplo concreto de implementación

En una implementación típica en Python con smtplib, el desarrollador se conecta al puerto 587, llama a starttls() para proteger la conexión y después invoca login(user, password). Esta secuencia garantiza que la identidad se verifique por un canal cifrado antes de que el servidor acepte el mensaje para entregarlo en su destino final.

Métodos de autenticación

Los métodos más comunes son PLAIN, que envía la contraseña en un formato prácticamente en claro (Base64), y LOGIN, un método heredado que usan los clientes más antiguos. Los sistemas modernos suelen preferir OAuth2 para la autenticación SMTP, lo que permite a las aplicaciones usar tokens en lugar de contraseñas estáticas y reduce el riesgo de exponer credenciales en los archivos de configuración.

Preguntas habituales de los equipos

¿La autenticación SMTP es lo mismo que SPF o DKIM?

No. La autenticación SMTP verifica al cliente ante el servidor durante el proceso de envío. SPF y DKIM verifican al remitente ante el servidor receptor una vez enviado el correo.

¿Qué puerto se usa normalmente para SMTP autenticado?

El puerto 587 es el estándar para el envío de correo con autenticación y STARTTLS, mientras que el puerto 465 se usa para TLS implícito.

¿Qué ocurre si falla la autenticación SMTP?

El servidor devuelve el código de error 535 Authentication Failed y rechaza el mensaje, lo que impide que se ponga en cola o se entregue.

Fuentes primarias