Tres partes principales están involucradas en la transferencia de un mensaje electrónico: el remitente, el destinatario y el servidor de email. El email va del remitente al servidor de email, que luego permite al destinatario recibir el mensaje.
¿Cuál es el papel de los protocolos de email aquí? Establecer conexiones entre las partes que transfieren. Por lo tanto, se necesita un protocolo para enviar y otro para recibir.
Hoy revisaremos y compararemos los tres protocolos de email más utilizados: IMAP, POP3 y SMTP, y le ayudaremos a elegir la opción correcta para sus necesidades.
¿Qué es un protocolo de email?
Un protocolo de email es una combinación de principios y reglas que hacen posible transferir mensajes entre diferentes servidores, máquinas y clientes de email. Crea estándares que los mensajes deben seguir para llegar a los destinatarios en su estado original.
Por ejemplo, cuando envía un email desde el cliente de Gmail a alguien con dirección de Outlook, espera que todos los archivos adjuntos y elementos del cuerpo estén presentes cuando vean su email. Esto es cierto, ya sea que usen clientes Apple Mail, Microsoft Outlook o Thunderbird para acceder a su bandeja de entrada.
Los protocolos de email también determinan cómo se deben enviar y acceder a los mensajes, qué formato deben tener y qué estructura debe seguir la conexión.
SMTP – un protocolo estándar para enviar emails
¿Qué es SMTP?
El Simple Mail Transfer Protocol (SMTP) establece cómo el mensaje llega del remitente al servidor de email. También, es utilizado por un agente de transferencia de email (MTA) para entregar emails entre servidores. Este proceso se llama retransmisión de email (o relay de SMTP).
SMTP solo está destinado para enviar mensajes de email.
Cómo funciona SMTP
El flujo de trabajo de SMTP consiste en comandos enviados por el cliente SMTP y respuestas correspondientes por el servidor SMTP.
Los comandos SMTP predeterminados son basados en texto, como HELO, MAIL FROM, y otros. A veces, puede encontrarse con comandos SMTP extendidos (ESMTP) como EHLO, STARTTLS, etc.
Las respuestas están representadas por códigos numéricos de finalización (por ejemplo, 220, 250, 354, y así sucesivamente). Para más información sobre los comandos y códigos de respuesta SMTP, lea nuestro artículo detallado.
Cualquier conversación SMTP consta de tres etapas:
- Handshake SMTP – El cliente SMTP establece una conexión TCP con el servidor SMTP. Una vez que el servidor responde con 250, comienza la negociación. La etapa termina cuando el servidor confirma la dirección del destinatario.
- Transferencia de email – El código 354, como respuesta al comando DATA, lanza la transferencia del email. Una vez que el servidor recibe un punto final, el mensaje se transfiere.
- Terminación – Cliente y servidor se despiden usando el comando QUIT y el código 221, respectivamente.
Echemos un vistazo a la interacción entre el cliente y el servidor SMTP a través de un ejemplo simple de entrega de email:
Comando o Respuesta | Qué significa | |
Cliente: | HELO client.rocket.com o EHLO client.rocket.com | Se identifica e inicia la conversación SMTP. El nombre de dominio o la dirección IP generalmente se envían como un argumento junto con el comando. EHLO es un comando alternativo para iniciar la conversación. Identifica que el cliente usa el protocolo ESMTP. |
Servidor: | 250 | OK o completado |
Cliente: | MAIL FROM:andy@rocket.com | Dice que una nueva transacción de email está comenzando y especifica el remitente |
Servidor: | 250 | OK o completado |
Cliente: | RCPT TO:jane@gmail.com | Especifica el destinatario. (Para múltiples destinatarios, el comando se repetirá para cada dirección del destinatario) |
Servidor: | 250 | OK o completado |
Cliente: | DATA | Inicia la transferencia de los contenidos del email incluyendo texto del cuerpo, archivos adjuntos, etc. |
Servidor: | 354 | Permite al cliente comenzar la transferencia de contenido |
Cliente: | Date: Mie, 24 Julio 2019 16:03:23 | Fecha |
Cliente: | From: andy@rocket.com | Encabezado del remitente |
Cliente: | Subject: How SMTP works | Línea de asunto |
Cliente: | To: jane@gmail.com | Encabezado del destinatario |
Cliente: | Línea vacía | |
Cliente: | Espero que no haya sido aburrido:) | Texto del cuerpo |
Cliente: | . | Una vez que se han transferido los contenidos del mensaje, se debe enviar un solo punto en una línea para terminar. |
Servidor: | 250 | OK o completado |
Cliente: | QUIT | Solicitud para terminar la conversación SMTP |
Servidor: | 221 | Cierra el canal de transmisión |
Puertos SMTP
- 25
Este es un puerto estándar para retransmitir mensajes entre servidores de email. Los proveedores de alojamiento en la nube y muchos clientes de email (Gmail, Microsoft Outlook, Mozilla Thunderbird, etc.) bloquean el puerto 25 para prevenir spam. Generalmente, priorizan conexiones seguras como 587 o 465.
- 465
465 no es un puerto compatible con RFC. Estaba destinado para el cifrado y la autenticación SMTPS sobre SMTP. IANA registró 465 como un puerto SMTP, pero nunca ha sido reconocido como un canal oficial de transmisión o envío SMTP.
Más tarde, el puerto 465 se volvió obsoleto y fue revocado a favor del wrapper STARTTLS sobre SMTP. Sin embargo, hoy en día muchos servidores aún usan SMTPS y mantienen el 465.
- 587
El puerto SMTP predeterminado 587 es la opción para enviar un email para enrutamiento. El cifrado TLS asegura el envío seguro del email. Casi todos los servidores de email admiten el 587.
- 2525
No es un puerto SMTP oficial, pero casi cualquier proveedor de servicios de email lo admite. 2525 está asegurado de manera similar al 587 y a menudo se utiliza en lugar de este. Entonces, si el uso del puerto SMTP predeterminado causa algún problema, pruebe con el 2525.
Para más información sobre esto, lea nuestro artículo sobre puertos SMTP.
Y para una inmersión más profunda en las diferencias entre SMTP y un protocolo como IMAP, mire este video:
IMAP4 y POP3 – protocolos para recibir emails
Una vez que el email toca la puerta del servidor de email, se utilizará IMAP o POP3 para recuperarlo. Ambos servidores son agentes de acceso a mensajes (MAAs).
¿Qué es IMAP?
Internet Message Access Protocol (IMAP) es un estándar de comunicación para acceder a los emails. Hoy en día, se usa su cuarta versión, de ahí el nombre IMAP4.
IMAP almacena los emails en un servidor remoto y los descarga bajo demanda cuando el destinatario los abre. Así, el protocolo IMAP accede al email desde cualquier dispositivo o ubicación si está autorizado. Esto permite la sincronización de emails, por lo que IMAP es la opción preferida por la mayoría de los proveedores de servicios de email.
Cómo funciona IMAP
Aquí está el flujo básico de la interacción cliente/servidor IMAP:
- El cliente de email del destinatario se conecta al servidor donde se almacena el mensaje.
- El destinatario puede ver los encabezados de los mensajes de todos los emails en el servidor.
- Si el destinatario elige un mensaje en particular para leer, IMAP lo descarga bajo demanda.
Detrás de escena, una conexión IMAP primitiva puede verse así:
Comando del cliente | Descripción |
LOGIN | Abre la conexión IMAP |
LISTCREATERENAME y otros comandos | Comandos que te permiten gestionar el buzón |
SELECT | Define el buzón actual y abre una sesión IMAP |
LISTDOWNLOADDELETE y otros comandos | Comandos que te permiten gestionar los mensajes |
CLOSE | Cierra la sesión IMAP. Si deseas abrir una nueva sesión, puedes hacerlo configurando otro buzón actual. Una vez que se abre la nueva sesión, el servidor IMAP actualiza permanentemente los mensajes según la sesión anterior. |
LOGOUT | Cierra la conexión IMAP |
Aquí encontrará una selección completa de comandos del cliente.
¡No puede ser! Olvidamos las respuestas del servidor IMAP. Hay tres formas de ellas:
- Respuestas de Estado (OK, NO, BAD, PREAUTH y BYE)
Pueden incluir un código de respuesta como ALERT o CAPABILITY. Un código de respuesta da información adicional más allá de la condición de respuesta de estado.
- Datos del Servidor
Estas respuestas incluyen Estado del Server y Mailbox (CAPABILITY, LIST, etc.), Tamaño del Mailbox (EXISTS y RECENT), y Message Status (EXPUNGE y FETCH).
- Solicitud de Continuación de Comando
Esta respuesta confirma que el servidor está listo para aceptar la continuación del comando del cliente. Está representada por un token “+”.
Puertos IMAP
- 143 – Un puerto IMAP predeterminado sin cifrado.
- 993 – Un puerto SSL/TLS seguro utilizado por la mayoría de los proveedores de servicios de email. A menudo se llama IMAPS.
¿Qué es POP3?
Post Office Protocol 3 es una forma más simple de acceder a los buzones de email. Usamos su tercera versión, por eso se llama POP3. A los usuarios les encanta este protocolo por su baja dependencia de las conexiones a Internet.
El protocolo POP3 descarga los emails del servidor a la computadora local, por lo que podrás leerlos incluso sin conexión. El servidor elimina los mensajes una vez que se recuperan. Esta es la configuración predeterminada y común, pero existe la opción de imponer una política del sitio sobre la retención de emails en el servidor.
Al mismo tiempo, incluso si el cliente POP3 contiene opciones de configuración para almacenar emails, el servidor no admitirá tal acción.
Cómo funciona POP3
La conexión POP3 consta de cuatro pasos:
- El cliente se conecta al servidor (Estado de AUTORIZACIÓN).
- El cliente recupera nuevos emails (Estado de TRANSACCIÓN).
- El servidor elimina los mensajes almacenados (Estado de ACTUALIZACIÓN).
- El cliente se desconecta del servidor.
Echemos un vistazo tras bastidores de una sesión POP3.
Comando o Respuesta | Qué significa | |
Servidor: | El servidor está esperando la conexión en el puerto TCP/IP 110 | |
Cliente: | El cliente establece una conexión TCP. | |
Servidor: | +OK POP3 server ready | Si todo está bien, la respuesta del servidor será consistente. De lo contrario, mostrará -ERR |
Cliente: | APOP mrose c4c9334bac560ecc979e58001b3e22fb | Proporciona identificación de origen y protección de repetición para la sesión. mrose es el parámetro de nombre y c4c9334bac560ecc979e58001b3e22fb es el parámetro de resumen. Identifican un buzón y una cadena de resumen MD5. |
Servidor: | +OK | Si todo está bien, la respuesta del servidor será consistente. De lo contrario, mostrará -ERR |
Cliente: | STAT | Ahora, la sesión entra en el estado de TRANSACCIÓN. El comando STAT pregunta cuántos mensajes hay actualmente en el buzón y su tamaño en octetos. |
Servidor: | +OK 1 334 | El buzón tiene un mensaje de 334 octetos. |
Cliente: | DELE 1 | Elimina el mensaje. |
Servidor: | +OK message 1 deleted | Si todo está bien, la respuesta del servidor será consistente. De lo contrario, mostrará -ERR |
Cliente: | QUIT | Una vez que la sesión termina, el cliente se desconecta mediante el comando QUIT. |
Servidor: | +OK dewey POP3 server signing off (maildrop empty) | Si todo está bien, la respuesta del servidor será consistente. De lo contrario, mostrará -ERR |
Cliente: | El cliente cierra la conexión TCP. | |
Servidor: | El servidor está esperando la conexión en el puerto TCP 110 |
Usamos solo dos comandos (DELE y STAT) que son válidos en el estado de TRANSACCIÓN. Puede encontrar más opciones aquí.
En cuanto a las respuestas POP3, contienen un indicador de estado (+OK o -ERR) y una palabra clave que puede ser mejorada con información adicional (por ejemplo, -ERR no such message, only 2 messages in maildrop).
Puertos POP3
- 110 – Un puerto POP3 predeterminado sin cifrado.
- 995 – Un puerto SSL/TLS seguro que a menudo se denomina POP3S.
IMAP o POP3 – ¿qué protocolo debo elegir?
Al principio, estábamos considerando hacer una tabla con una comparación de los pros y los contras de IMAP y POP3. Pero esta idea resultó inviable ya que los diferentes usuarios tendrán diferentes demandas en términos de los estándares de protocolo de email. Así que decidimos configurarlo de esta manera.
Elija IMAP4 si:
- Necesita acceso al email desde diferentes dispositivos.
- Necesita organizar su email en carpetas o algún tipo de jerarquía.
- Tiene espacio de almacenamiento en servidor ilimitado.
- Tiene una conexión a Internet constante y estable.
- Necesita acceso rápido a su email.
Elija POP3 si:
- Su conexión a Internet es inestable o incluso no está disponible.
- Prioriza la privacidad sobre la accesibilidad y prefiere almacenar emails en la máquina local.
- Es la única persona con acceso a su cuenta de email y usa un solo dispositivo para ese propósito.
Si aún no sabe qué protocolo elegir, consulte nuestro artículo sobre las diferencias clave entre IMAP y POP3 o mire este video:
¿Qué hay de HTTP?
HyperText Transfer Protocol (HTTP) es otra opción para acceder a los emails, aunque no es un protocolo de email. Independientemente, HTTP puede usarse para enviar y recibir mensajes desde webmail, como Gmail.com. También es una buena práctica acceder a emails en aplicaciones móviles a través de HTTP.
Este protocolo tiene dos puertos predeterminados: 80 para conexiones no cifradas y 443 para conexiones seguras.
Cómo llega un email del remitente al destinatario
Ahora que sabe para qué se usa cada protocolo de email, hagamos un mapa completo de cómo un mensaje electrónico puede llegar de un remitente (bruce@remitente.com) a un destinatario (jane@receptor.com).
- El cliente de email del remitente se conecta al servidor SMTP (por ejemplo, smtp.gmail.com).
- El servidor SMTP autentica la dirección de email del destinatario usando registros DNS (para más información sobre autenticación de email, lea nuestros artículos sobre registros SPF, DKIM, DMARC y BIMI o mire videos en nuestro canal de YouTube).
- Una vez que el servidor SMTP de Gmail autoriza al destinatario, envía el email al servidor SMTP de receptor.com.
- El servidor SMTP de receptor.com. verifica si jane@receptor.com es válida.
- El servidor SMTP reenvía el email al servidor IMAP/POP3.
¿Es suficiente configurar protocolos de email para enviar y recibir emails con éxito?
La respuesta corta es no. Aunque los protocolos de email configurados adecuadamente son esenciales, ciertamente no son suficientes. Necesita una infraestructura de email segura con herramientas de entregabilidad integradas para llegar a las bandejas de entrada de los destinatarios.
Para saber más sobre qué es una infraestructura de email, consulte nuestro video detallado:
Junto con la infraestructura de email, también podrá necesitar una bandeja de entrada virtual para recibir todos sus emails de prueba.
Mailtrap es una plataforma única que se encarga de todas sus necesidades relacionadas al email. Pruebe sus emails usando un servidor SMTP falso proporcionado por Email Testing, envíe sus emails con el servidor SMTP confiable de Email API/SMTP y monitoree el rendimiento de su infraestructura. Todo eso con la plataforma de Email Delivery de Mailtrap.
Email Testing es un Sandbox de email que captura todo su tráfico SMTP. Puede usarlo para verificar la funcionalidad de envío de email de su aplicación y ver si el servidor SMTP está configurado correctamente. Con las funciones de Verificación de HTML y Análisis de Spam de Email Testing, abordará los problemas de entregabilidad antes de que su aplicación llegue al entorno de producción.
Una vez que termine con las pruebas, podrá configurar su aplicación para usar el servidor SMTP de Email API/SMTP que entrega sus emails a las bandejas de entrada en segundos. Alternativamente, integre Mailtrap con API para mayor flexibilidad. Cualquiera que sea el método que usted elija, tendrá acceso a las capacidades únicas de monitoreo de Email API/SMTP: análisis procesables con informes detallados y paneles de vista general.
Así es como se verá el flujo de entrega de email si utiliza Email API/SMTP o Email Testing de Mailtrap:
- El cliente de email del remitente se conecta al servidor SMTP real o falso (live.smtp.mailtrap.io y sandbox.smtp.mailtrap.io, respectivamente). Mailtrap proporciona todas las credenciales necesarias como puerto, nombre de usuario, contraseña y método de autenticación.
- Si está utilizando Email Testing, el servidor SMTP falso enviará un email al servidor POP3 (pop3.mailtrap.io).
- Verá su mensaje en su bandeja de entrada de demostración, si su aplicación funciona correctamente.
- Si está utilizando Email API/SMTP, los emails se dirigirán a los servidores POP3 o IMAP de los destinatarios.
- En cuestión de segundos, aparecerán en las bandejas de entrada de tus destinatarios.
Para más información sobre cómo integrar y usar Mailtrap, consulte nuestra guía de inicio.
Esperamos que nuestro artículo sobre IMAP vs POP3 vs SMTP le haya ayudado a aclarar el complicado mundo de los emails.