Aprende cómo funciona el protocolo SMTP para correo saliente

El protocolo SMTP (Simple Mail Transfer Protocol) es uno de los protocolos más importantes del correo electrónico. Todos los proveedores de correo electrónico disponen de datos de conexión de POP3/IMAP para el correo electrónico entrante, pero también proporcionan datos sobre el protocolo SMTP, el protocolo encargado de enviar los correos electrónicos desde un cliente de correo como Thunderbird o Outlook para Windows. Hoy en RedesZone os vamos a explicar el funcionamiento del protocolo SMTP para el correo electrónico saliente (para enviar emails), y cómo puedes configurarlo con cualquier cliente de email.

¿Qué es el protocolo SMTP y para qué sirve?

El protocolo SMTP (Simple Mail Transfer Protocol) o también conocido como «Protocolo de Transferencia simple de correo» es el protocolo utilizado cuando vamos a enviar un correo electrónico a través de un servidor de correo. Este protocolo se utiliza por los clientes locales de email para enviar los mensajes de email al servidor de correo remoto, por tanto, actúa únicamente en sentido salida, a diferencia del protocolo POP3 que sirve para recibir los emails, este SMTP sirve para enviarlos.

Este protocolo pertenece al nivel de aplicación del modelo TCP/IP, utiliza el protocolo de la capa de transporte TCP, y hace uso de diferentes puertos dependiendo de si el tráfico va cifrado o no va cifrado:

  • Puerto 25 TCP para tráfico sin cifrar.
  • Puerto 465 TCP para tráfico cifrado SSL (SMTPS).
  • Puerto 587 TCP como puerto alternativo para SMTPS con TLS.

Actualmente la gran mayoría de proveedores de servicios de correo electrónicos disponen  de soporte para SSL/TLS, con la finalidad de cifrar y proteger todos los datos que se envían en el correo electrónico, por tanto, casi siempre vamos a hacer uso de los puertos 465 y 587, dependiendo de cómo esté configurado el servidor de correo. Por ejemplo, en el caso de Gmail no se permite utilizar el puerto 25 TCP porque no tiene ningún tipo de cifrado, sin embargo, soporta tanto el puerto 465 para conexiones SSL como el puerto 587 para conexiones TLS.

El protocolo SMTP está orientado específicamente al envío de correos electrónicos, en dirección «subida» o saliente, desde el cliente de correo local hasta el servidor de correo, para posteriormente enviarlo a su destinatario final. Por supuesto, el cliente de correo local almacenará estos emails en la sección de emails enviados, independientemente de que estemos usando Thunderbird o Outlook de Windows.

SMTP permite realizar la autenticación con usuario/contraseña en texto claro a partir del puerto 25, pero actualmente, pocos servicios soportan este protocolo sin utilizar ningún tipo de cifrado, con el objetivo de proporcionarnos confidencialidad a la autenticación y también al correo electrónico enviado. Con las últimas versiones de SMTPS podremos usar los puertos 465 o 587 para tener cifrado de datos, autenticidad y comprobación de la integridad de los mensajes enviados.

Funcionamiento e intercambio de mensajes

El funcionamiento del protocolo SMTP es bastante sencillo, lo primero que debemos tener en cuenta es que SMTP es un protocolo orientado a conexión basado en texto, por tanto, es un protocolo fiable al utilizar el protocolo de la capa de transporte TCP. El cliente de correo se comunica con el servidor a través de una serie de secuencias de comandos para realizar la autenticación, el envío de los mensajes y para cerrar la conexión, por supuesto, el servidor de correo también le responderá con una serie de secuencias de comandos a modo de contestación. En la misma sesión de SMTP se pueden incluir cero o más transacción, en cada una de estas transacciones tendremos un total de tres secuencias de comandos/respuesta que son:

  • MAIL: establece la dirección de retorno.
  • RCPT: establece un destinatario del mensaje, puede emitirse varias veces dependiendo del número de destinatarios.
  • DATA: es el mensaje de texto del correo electrónico, es decir, el contenido del propio correo electrónico. Se compone de la cabecera y también del cuerpo del mensaje.

Una vez que configuramos el cliente de correo correctamente, el email se redacta directamente en el propio cliente de correo, cuando se le da al botón de «Enviar» es cuando empieza todo el proceso:

  1. El cliente establecerá la conexión con el servidor SMTP esperando contestación de HELO para recibir la identificación del servidor.
  2. El cliente empieza la comunicación con la orden MAIL FROM con la dirección de email, a continuación, el servidor comprobará que el origen es válido.
  3. El cliente le enviará un mensaje RCPT TO incorporando el email de destino del correo electrónico, dependiendo de los destinatarios tendremos un mensaje RCPT TO o varios. A continuación, se envía una orden DATA para indicar que viene el cuerpo del mensaje línea a línea.
  4. El cliente si no va a enviar más emails, enviará una orden QUIT para terminar la sesión SMTP.
  5. En el caso de enviar posteriormente un email, empezaría todo el proceso nuevamente.

Una vez que ya conocemos qué es SMTP y cómo funciona, os vamos a enseñar cómo configurarlo fácilmente para enviar emails a través de un cliente de correo como Thunderbird o cualquier otro.

Configuración de SMTP

El protocolo SMTP se puede configurar tanto en clientes de correo electrónico para enviar y recibir emails a través de este cliente, o directamente para usarlo en servidores y que nos envíe avisos por correo electrónico de algún evento o problema. Para configurar el servidor SMTP de nuestro proveedor de correo electrónico generalmente no tenemos que hacer nada, porque ya se encuentra habilitado. Sin embargo, si vas a usar SMTP en un cliente de correo deberás habilitar POP3/IMAP para poder recibir el correo correctamente.

Imaginemos que queremos configurar un servidor o un NAS para que nos envíe notificaciones por email de diferentes eventos, lo único que tendremos que conocer del servidor de correo son los siguientes datos:

  • Servidor de correo entrante (dominio o dirección IP), en el caso de Gmail es «smtp.gmail.com»
  • Requiere o no SSL, en el cliente deberemos pinchar en esta opción. Gmail requiere SSL obligatoriamente.
  • Puerto: 465
  • Nombre de usuario: la dirección de correo electrónico completa, por ejemplo: sergio@gmail.com
  • Contraseña: la contraseña que hayamos puesto en Gmail.

Una vez que sepamos toda esta información que la tenemos disponible en la web oficial de Gmail, procedemos a rellenar los diferentes campos. A continuación, podéis ver la configuración de SMTP en un pfSense para que nos realice envíos por email de los diferentes eventos. Tendremos que habilitar el «Secure SMTP Connection» y elegir el puerto correcto.

Un detalle muy importante es que si tienes autenticación en dos pasos, deberás activar la «contraseña de aplicación» y usar esta clave para poder acceder al SMTP, de lo contrario, no te funcionará.

La configuración del protocolo SMTP en cualquier cliente de correo es muy sencilla, porque generalmente disponen de una base de datos interna con todos los datos predefinidos, por tanto, no tendremos que conocerlos de antemano. En el caso de que uses Thunderbird o Outlook de Windows para gestionar tu correo, es necesario que actives el POP3 o IMAP para recibir el correo, a no ser que solamente quieras enviar y nada más.

Lo primero que vamos a necesitar es activar el soporte de POP3 y/o IMAP por parte de Gmail, de forma predeterminada esta función se encuentra deshabilitada.

Os recomendamos que utilicéis IMAP porque permite sincronización, POP3 es un protocolo bastante antiguo que no permite muchas características para gestionar tu correo correctamente desde múltiples clientes.

En clientes de correo como Thunderbird tan solo tendremos que poner nuestro nombre completo, cuenta de email y la clave, y posteriormente elegir si queremos IMAP o POP3 como correo entrante, el correo saliente siempre será SMTP. Gracias a la base de datos interna, el programa detectará los datos de conexión de Gmail y no tendremos que introducir nada. Si os fijáis en la siguiente captura, se está utilizando SMTP con SSL/TLS y en el puerto predefinido por Gmail.

Una vez hecho esto, tendremos que autenticarnos en Google para acceder correctamente a nuestra cuenta de correo electrónico.

Finalmente nos indicará que se ha creado correctamente, y podemos empezar a enviar los correos electrónicos sin problemas.

Lo primero que hará el cliente es recibir todos los emails de la bandeja de correo, y podremos enviarlos vía SMTP sin ningún problema.

Tal y como habéis visto, configurar el protocolo SMTP en cualquier equipo es realmente sencillo, no solamente en los clientes de correo como Thunderbird o Outlook, sino también en sistemas como pfSense, XigmaNAS para recibir correos electrónicos con diferentes avisos y alertas, así como en servidores NAS de QNAP y otros fabricantes. Lo único que tendremos que conocer son los datos de conexión del servidor SMTP de nuestro servidor de correo.

¡Sé el primero en comentar!