¿Qué es SMTP? Definición y fundamentos
Si hiciéramos una comparación con el sistema de correo tradicional donde el email es la carta, el SMTP sería el cartero. Sin el protocolo de red estándar del Internet moderno, el envío de documentos, fotos de nuestros viajes y divertidos vídeos de gatos no sería posible. La explicación es más sencilla de lo que parece: cuando envías un correo electrónico, no solo va directamente al destinatario, sino que pasa por un complejo proceso de comunicación con numerosas instancias antes de llegar a su destino.
Con el saldo inicial de cada tarifa puedes usar el servidor cloud de IONOS durante 1 mes de forma gratuita (o hasta que se agote el saldo) y disfrutar de la combinación perfecta de rendimiento y seguridad.
¿En qué consiste el protocolo SMTP?
SMTP significa Simple Mail Transfer Protocol, que puede traducirse como “protocolo de transferencia simple de correo”. Se trata de un protocolo de conexión de Internet y, como tal, se encuentra en la séptima capa del modelo OSI, la capa de aplicación. Al igual que cualquier otro protocolo de red, contiene reglas para la comunicación correcta entre los ordenadores de una red. SMTP es responsable de procesar y reenviar correos electrónicos de un remitente a un destinatario.
Desde su lanzamiento en 1982 como sucesor del “Mail Box Protocol” en Arpanet, SMTP se ha convertido en el protocolo estándar para el envío de correos electrónicos. Para el usuario medio, el procedimiento que sigue el protocolo SMTP sigue siendo en gran medida invisible, ya que se lleva a cabo en segundo plano mediante el programa de correo electrónico en cuestión. Solo tendremos que configurar el protocolo SMTP si el software, el gestor de correo que tengamos instalado en nuestro ordenador o la aplicación de correo de nuestro móvil no lo determina de forma automática.
Sendmail fue uno de los primeros agentes de transferencia de correo (MTA) compatible con el protocolo SMTP.
A continuación, te mostramos una descripción general de las direcciones de los servidores y puertos SMTP de algunos de los proveedores de correo electrónico más populares:
Proveedor de email | Dirección del servidor SMTP | Puerto SMTP |
Yahoo | smtp.mail.yahoo.com | 587 |
GMX | mail.gmx.net | 587 |
Gmail | smtp.gmail.com | 587 (TLS/STARTTLS), 465 (SSL) |
¿Cómo funciona el protocolo SMTP?
Entender el proceso SMTP significa comprender cómo funciona el envío de correos electrónicos. Básicamente, el proceso es el siguiente:
- El cliente SMTP, es decir, el remitente, carga el correo electrónico en el servidor SMTP, es decir, en el servidor de correo saliente del proveedor de correo electrónico correspondiente. Esto se hace a través de una aplicación de webmail en el navegador o a través de un programa de correo electrónico (técnicamente llamado "Mail User Agent" (MUA para abreviar) como Windows Live Mail o Mozilla Thunderbird.
- El servidor SMTP se pone en contacto con el servidor DNS y este servidor busca la dirección IP del servidor SMTP de destino (también llamado "Mail Delivery Agent", MDA para abreviar), que se almacena para la dirección del destinatario del correo electrónico.
- El servidor SMTP envía el correo electrónico a través de uno o varios “Mail Transfer Agents” (MTA) al servidor SMTP de destino. Cada una de estas operaciones de reenvío se realiza de acuerdo con el protocolo SMTP.
- El servidor SMTP de destino almacena temporalmente el correo electrónico en el almacén de mensajes.
- El destinatario MUA descarga el correo electrónico ya sea a través de IMAP o POP3.
¿Cómo funciona una sesión SMTP?
La interacción entre el cliente SMTP y el servidor SMTP mencionado en el primer paso del procedimiento representa la sesión SMTP real. Cada sesión consiste en una secuencia de comandos SMTP del cliente y respuestas en forma de códigos de estado del servidor.
Descripción general de los comandos SMTP
De acuerdo con las especificaciones SMTP aplicables, cada implementación del protocolo de red debe soportar al menos los siguientes ocho comandos, que consisten en caracteres ASCII de 7 bits:
Comando SMTP | Significado |
HELO | “Hello.” – El cliente se conecta con el nombre de su ordenador e inicia la sesión con él. |
MAIL FROM | El cliente nombra al remitente del correo electrónico. |
RCPT TO | “Recipient” – El cliente nombra al destinatario del correo electrónico. |
DATA | El cliente inicia la transmisión del correo electrónico. |
RSET | El cliente interrumpe la transmisión iniciada, pero mantiene la conexión entre el cliente y el servidor. |
VRFY/EXPN | “Verify”/“Expand” – El cliente comprueba si un buzón de correo está disponible para la entrega de mensajes. |
NOOP | El cliente solicita una respuesta del servidor para evitar la desconexión por tiempo muerto. |
QUIT | El cliente termina la sesión. |
Descripción general de los códigos de estado del servidor
El servidor responde a cada uno de estos comandos SMTP del cliente con un código de estado de tres dígitos que incluye un mensaje de texto plano. Para una mejor comprensión hemos traducido estos mensajes a castellano en el siguiente resumen:
Código de estado | Mensaje de texto plano (traducido al español) |
Códigos de estado que indican que el servidor ha ejecutado correctamente el comando: | |
200 | (Respuesta de éxito no estándar) |
211 | Solicitud del estado del sistema o de ayuda del sistema |
214 | Solicitud de ayuda para la ejecución de un comando |
220 | El servidor está listo para la sesión SMTP. |
221 | El servidor finaliza la conexión |
250 | OK - Comando ejecutado |
251 | OK - No hay usuario local disponible, el correo se reenvía |
252 | OK - la dirección del destinatario no puede ser verificada, la transmisión todavía se intenta |
253 | OK - Los mensajes se ajustan a “Pendiente” |
Códigos de estado que indican que el servidor ha entendido el comando, pero necesita más información para procesarlo: | |
354 | El servidor inicia la recepción de correo |
Códigos de estado que indican que el servidor ha detectado un error temporal, pero que el comando aún puede ser procesado: | |
421 | El servidor no está disponible, la conexión se interrumpe |
450 | Comando no ejecutado, buzón de correo no disponible |
451 | La ejecución del comando finalizó debido a un error local |
452 | Comando no ejecutado, porque no hay suficiente memoria en el sistema |
Códigos de estado que indican que el servidor ha detectado un error fatal y que el comando no puede ser procesado: | |
500 | Error de sintaxis, comando desconocido |
501 | Error de sintaxis en parámetros o argumentos |
502 | El comando no existe |
503 | Secuencia de comandos no válida |
504 | El parámetro de comando no existe |
521 | El servidor no acepta correos electrónicos |
530 | Acceso denegado |
550 | Comando no ejecutado, buzón de correo no disponible |
551 | No hay ningún usuario local disponible, intente reenviarlo |
552 | Ejecución de comando abortada, error de asignación de memoria |
553 | Comando no ejecutado, nombre de buzón no válido |
554 | Fallo en la transmisión |
Sesión de ejemplo de SMTP
Una sesión SMTP entre el cliente y el servidor puede, por ejemplo, ejecutarse como se indica a continuación:
Parte | Comandos y códigos de estado SMTP | Explicación |
Servidor: | 220 smtp.ejemplo.com ESMTP Postfix | Una vez establecida la conexión, el servidor SMTP responde. |
Cliente: | HELO relay.ejemplo.com | El cliente SMTP inicia sesión con tu nombre de host. |
Servidor: | 250 smtp.ejemplo, Buenos Días | El servidor confirma el registro. |
Cliente: | MAIL FROM:<jose@ejemplo.com> | El cliente especifica la dirección del remitente del MUA. |
Servidor: | 250 OK | El servidor lo confirma. |
Cliente: | RCPT TO:<jefe@lugardetrabajo.com> | El cliente especifica la dirección del destinatario. |
Servidor: | 250 OK | El servidor lo confirma. |
Cliente: | DATA | El cliente inicia la transmisión del correo electrónico. |
Servidor: | 354 End data with <CR><LF>.<CR><LF> | El servidor inicia la recepción y especifica que el texto del correo electrónico debe cerrarse con un punto ("."). |
Cliente: | From: “José Ejemplo” <jose@ejemplo.com> To: Jefe del Lugar de Trabajo <jefe@lugardetrabajo.com> Date: Lunes, 12. de marzo de 2018 10:03:42 Subject: Baja por enfermedad Estimado jefe: Me temo que hoy no podré asistir al trabajo por enfermedad. Enviaré por fax, lo antes posible, el certificado de mi médico a recursos humanos. Le pido su comprensión, José Ejemplo | El cliente pasa el texto del correo electrónico, lo resalta con un salto de línea después de "Asunto: baja por enfermedad" y lo termina con el punto deseado. |
Servidor: | 250 OK: queued as 15432 | El servidor confirma la recepción correcta del correo electrónico y lo añade a la cola. |
Cliente: | QUIT | El cliente señala el final de la sesión. |
Servidor: | 221 Adios | El servidor termina la conexión. |
¿Buscas una solución de hosting segura y económica para correo electrónico profesional? El e-mail hosting de IONOS proporciona todo lo que necesitas y se adapta a tu profesión. El servicio incluye direcciones de correo electrónico personalizadas con dominio propio, acceso flexible desde cualquier lugar, solución de calendario y escritorio, función de archivo y mucho más. También podrás disfrutar de los más altos estándares de seguridad gracias a los centros de datos de IONOS con certificación ISO.
¿Cuáles son las desventajas del protocolo SMTP?
SMTP tiene dos inconvenientes inherentes al protocolo de red. La primera es que el envío de un correo electrónico a través de SMTP no devuelve una confirmación de envío útil. Aunque las especificaciones del protocolo prevén tal notificación, su formato no está definido por defecto, de modo que normalmente solo se devuelve un mensaje de error en inglés que incluye el encabezamiento del mensaje no entregado. Esto dificulta la determinación de la causa de la transmisión fallida (por ejemplo, una dirección incorrecta o un buzón de correo sobrecargado al final del destinatario).
La segunda desventaja del SMTP es que los usuarios no se autentican cuando se establece una conexión y, por lo tanto, el remitente de un correo electrónico es poco fiable. Como resultado, los SMTP abiertos se utilizan a menudo para el envío masivo de spam. Los autores utilizan direcciones de remitente falsas y arbitrarias para que no puedan ser rastreadas (mail spoofing). A pesar de esto, hoy en día se utilizan muchas técnicas de seguridad para prevenir el mal uso de los servidores SMTP. Por ejemplo, los correos electrónicos sospechosos son rechazados o puestos en cuarentena (carpeta de spam). El protocolo de identificación de DomainKeys, el Sender Policy Framework (SPF) o las listas grises son responsables de ello. Además, se ha vuelto más o menos estándar recibir correos electrónicos no solo a través del puerto tradicional 25/TCP, sino también a través del puerto 587/TCP, con el fin de garantizar la transmisión exclusivamente a usuarios autentificados.
¿Qué es el ESMTP?
En respuesta al creciente problema de spam en Internet, en 1995 se publicó una extensión a SMTP: Extended SMTP (ESMTP para abreviar). Complementa el protocolo con comandos adicionales en código ASCII de 8 bits, que han permitido a muchas nuevas funciones ahorrar ancho de banda y proteger los servidores. Estos incluyen, por ejemplo:
- Autenticación del remitente
- Cifrado SSL de correos electrónicos
- Posibilidad de adjuntar archivos multimedia a los correos electrónicos
- Restricciones de tamaño del correo electrónico según los valores predeterminados del servidor
- Envío simultáneo a varios destinatarios
- Mensajes de error normalizados en caso de que no se pueda realizar la entrega
Finalmente, te mostramos algunos ejemplos de comandos ESMTP:
Comando ESMTP | Significado |
EHLO | El “Hello” alternativo en el registro expandido. El cliente se conecta con el nombre de su ordenador e inicia la sesión con él. Si el servidor es compatible con ESMTP, la sesión se inicia correctamente. De lo contrario, el cliente debe utilizar SMTP. |
8BITMIME | El cliente solicita al servidor que permita el juego de caracteres ASCII de 8 bits en el cuerpo del mensaje. |
SIZE | El cliente solicita al servidor que especifique el tamaño máximo permitido de correo electrónico en bytes. |
STARTTLS | El cliente pregunta si el servidor admite el cifrado TLS. |