¿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.

Prueba del servidor cloud gratis con IONOS

Prueba ahora el servidor cloud de forma gratuita - ¡Dispón de 30 días para probar el servidor Cloud de IONOS sin coste!

REST API
Tráfico ilimitado
Virtualización VMware

¿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.

Hecho

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:

  1. 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.
     
  2. 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.
     
  3. 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.
     
  4. El servidor SMTP de destino almacena temporalmente el correo electrónico en el almacén de mensajes.
     
  5. 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.
Consejo

¿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.