Si hi­cié­ra­mos una co­m­pa­ra­ción con el sistema de correo tra­di­cio­nal 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 do­cu­me­n­tos, fotos de nuestros viajes y di­ve­r­ti­dos vídeos de gatos no sería posible. La ex­pli­ca­ción es más sencilla de lo que parece: cuando envías un correo ele­c­tró­ni­co, no solo va di­re­c­ta­me­n­te al de­s­ti­na­ta­rio, sino que pasa por un complejo proceso de co­mu­ni­ca­ción con numerosas in­s­ta­n­cias antes de llegar a su destino.

Free Cloud Server Trial
Prueba el servidor cloud gratis
  • Tráfico ilimitado, ce­r­ti­fi­ca­do SSL y firewall incluidos
  • Alojado en nuestros centros de datos en España
  • Soporte experto 24/7 en español

¿En qué consiste el protocolo SMTP?

SMTP significa Simple Mail Transfer Protocol, que puede tra­du­ci­r­se como “protocolo de tra­n­s­fe­re­n­cia 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 apli­ca­ción. Al igual que cualquier otro protocolo de red, contiene reglas para la co­mu­ni­ca­ción correcta entre los or­de­na­do­res de una red. SMTP es re­s­po­n­sa­ble de procesar y reenviar correos ele­c­tró­ni­cos de un remitente a un de­s­ti­na­ta­rio.

Desde su la­n­za­mie­n­to en 1982 como sucesor del “Mail Box Protocol” en Arpanet, SMTP se ha co­n­ve­r­ti­do en el protocolo estándar para el envío de correos ele­c­tró­ni­cos. Para el usuario medio, el pro­ce­di­mie­n­to 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 ele­c­tró­ni­co en cuestión. Solo tendremos que co­n­fi­gu­rar el protocolo SMTP si el software, el gestor de correo que tengamos instalado en nuestro ordenador o la apli­ca­ción de correo de nuestro móvil no lo determina de forma au­to­má­ti­ca.

Hecho

Sendmail fue uno de los primeros agentes de tra­n­s­fe­re­n­cia de correo (MTA) co­m­pa­ti­ble con el protocolo SMTP.

A co­n­ti­nua­ción, te mostramos una de­s­cri­p­ción general de las di­re­c­cio­nes de los se­r­vi­do­res y puertos SMTP de algunos de los pro­vee­do­res de correo ele­c­tró­ni­co 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 co­m­pre­n­der cómo funciona el envío de correos ele­c­tró­ni­cos. Bá­si­ca­me­n­te, el proceso es el siguiente:

  1. El cliente SMTP, es decir, el remitente, carga el correo ele­c­tró­ni­co en el servidor SMTP, es decir, en el servidor de correo saliente del proveedor de correo ele­c­tró­ni­co co­rre­s­po­n­die­n­te. Esto se hace a través de una apli­ca­ción de webmail en el navegador o a través de un programa de correo ele­c­tró­ni­co (té­c­ni­ca­me­n­te llamado "Mail User Agent" (MUA para abreviar) como Windows Live Mail o Mozilla Thu­n­de­r­bi­rd.
     
  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 de­s­ti­na­ta­rio del correo ele­c­tró­ni­co.
     
  3. El servidor SMTP envía el correo ele­c­tró­ni­co a través de uno o varios “Mail Transfer Agents” (MTA) al servidor SMTP de destino. Cada una de estas ope­ra­cio­nes de reenvío se realiza de acuerdo con el protocolo SMTP.
     
  4. El servidor SMTP de destino almacena te­m­po­ra­l­me­n­te el correo ele­c­tró­ni­co en el almacén de mensajes.
     
  5. El de­s­ti­na­ta­rio MUA descarga el correo ele­c­tró­ni­co ya sea a través de IMAP o POP3.

¿Cómo funciona una sesión SMTP?

La in­ter­ac­ción entre el cliente SMTP y el servidor SMTP me­n­cio­na­do en el primer paso del pro­ce­di­mie­n­to re­pre­se­n­ta la sesión SMTP real. Cada sesión consiste en una secuencia de comandos SMTP del cliente y re­s­pue­s­tas en forma de códigos de estado del servidor.

De­s­cri­p­ción general de los comandos SMTP

De acuerdo con las es­pe­ci­fi­ca­cio­nes SMTP apli­ca­bles, cada im­ple­me­n­ta­ción del protocolo de red debe soportar al menos los si­guie­n­tes ocho comandos, que consisten en ca­ra­c­te­res ASCII de 7 bits:

Comando SMTP Si­g­ni­fi­ca­do
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 ele­c­tró­ni­co.
RCPT TO “Recipient” – El cliente nombra al de­s­ti­na­ta­rio del correo ele­c­tró­ni­co.
DATA El cliente inicia la tra­n­s­mi­sión del correo ele­c­tró­ni­co.
RSET El cliente in­te­rru­m­pe la tra­n­s­mi­sió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á di­s­po­ni­ble para la entrega de mensajes.
NOOP El cliente solicita una respuesta del servidor para evitar la de­s­co­ne­xión por tiempo muerto.
QUIT El cliente termina la sesión.

De­s­cri­p­ció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 co­m­pre­n­sión hemos traducido estos mensajes a ca­s­te­llano 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 co­rre­c­ta­me­n­te 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 di­s­po­ni­ble, el correo se reenvía
252 OK - la dirección del de­s­ti­na­ta­rio no puede ser ve­ri­fi­ca­da, la tra­n­s­mi­sió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 in­fo­r­ma­ción para pro­ce­sar­lo:
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á di­s­po­ni­ble, la conexión se in­te­rru­m­pe
450 Comando no ejecutado, buzón de correo no di­s­po­ni­ble
451 La ejecución del comando finalizó debido a un error local
452 Comando no ejecutado, porque no hay su­fi­cie­n­te 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 de­s­co­no­ci­do
501 Error de sintaxis en pa­rá­me­tros o ar­gu­me­n­tos
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 ele­c­tró­ni­cos
530 Acceso denegado
550 Comando no ejecutado, buzón de correo no di­s­po­ni­ble
551 No hay ningún usuario local di­s­po­ni­ble, intente re­en­viar­lo
552 Ejecución de comando abortada, error de asi­g­na­ción de memoria
553 Comando no ejecutado, nombre de buzón no válido
554 Fallo en la tra­n­s­mi­sión

Sesión de ejemplo de SMTP

Una sesión SMTP entre el cliente y el servidor puede, por ejemplo, eje­cu­tar­se como se indica a co­n­ti­nua­ción:

Parte Comandos y códigos de estado SMTP Ex­pli­ca­ción
Servidor: 220 smtp.ejemplo.com ESMTP Postfix Una vez es­ta­ble­ci­da 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 es­pe­ci­fi­ca la dirección del remitente del MUA.
Servidor: 250 OK El servidor lo confirma.
Cliente: RCPT TO:<jefe@lu­ga­r­de­tra­ba­jo.com> El cliente es­pe­ci­fi­ca la dirección del de­s­ti­na­ta­rio.
Servidor: 250 OK El servidor lo confirma.
Cliente: DATA El cliente inicia la tra­n­s­mi­sión del correo ele­c­tró­ni­co.
Servidor: 354 End data with <CR><LF>.<CR><LF> El servidor inicia la recepción y es­pe­ci­fi­ca que el texto del correo ele­c­tró­ni­co debe cerrarse con un punto (".").
Cliente: From: “José Ejemplo” <jose@ejemplo.com> To: Jefe del Lugar de Trabajo <jefe@lu­ga­r­de­tra­ba­jo.com> Date: Lunes, 12. de marzo de 2018 10:03:42 Subject: Baja por en­fe­r­me­dad Estimado jefe: Me temo que hoy no podré asistir al trabajo por en­fe­r­me­dad. Enviaré por fax, lo antes posible, el ce­r­ti­fi­ca­do de mi médico a recursos humanos. Le pido su co­m­pre­n­sión, José Ejemplo El cliente pasa el texto del correo ele­c­tró­ni­co, lo resalta con un salto de línea después de "Asunto: baja por en­fe­r­me­dad" y lo termina con el punto deseado.
Servidor: 250 OK: queued as 15432 El servidor confirma la recepción correcta del correo ele­c­tró­ni­co 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 ele­c­tró­ni­co pro­fe­sio­nal? El e-mail hosting de IONOS pro­po­r­cio­na todo lo que necesitas y se adapta a tu profesión. El servicio incluye di­re­c­cio­nes de correo ele­c­tró­ni­co pe­r­so­na­li­za­das con dominio propio, acceso flexible desde cualquier lugar, solución de ca­le­n­da­rio y es­cri­to­rio, función de archivo y mucho más. También podrás disfrutar de los más altos es­tá­n­da­res de seguridad gracias a los centros de datos de IONOS con ce­r­ti­fi­ca­ción ISO.

¿Cuáles son las de­s­ve­n­ta­jas del protocolo SMTP?

SMTP tiene dos in­co­n­ve­nie­n­tes inhe­re­n­tes al protocolo de red. La primera es que el envío de un correo ele­c­tró­ni­co a través de SMTP no devuelve una co­n­fi­r­ma­ción de envío útil. Aunque las es­pe­ci­fi­ca­cio­nes del protocolo prevén tal no­ti­fi­ca­ción, su formato no está definido por defecto, de modo que no­r­ma­l­me­n­te solo se devuelve un mensaje de error en inglés que incluye el en­ca­be­za­mie­n­to del mensaje no entregado. Esto dificulta la de­te­r­mi­na­ción de la causa de la tra­n­s­mi­sión fallida (por ejemplo, una dirección in­co­rre­c­ta o un buzón de correo so­bre­ca­r­ga­do al final del de­s­ti­na­ta­rio).

La segunda de­s­ve­n­ta­ja del SMTP es que los usuarios no se au­te­n­ti­can cuando se establece una conexión y, por lo tanto, el remitente de un correo ele­c­tró­ni­co es poco fiable. Como resultado, los SMTP abiertos se utilizan a menudo para el envío masivo de spam. Los autores utilizan di­re­c­cio­nes de remitente falsas y ar­bi­tra­rias para que no puedan ser ra­s­trea­das (mail spoofing). A pesar de esto, hoy en día se utilizan muchas técnicas de seguridad para prevenir el mal uso de los se­r­vi­do­res SMTP. Por ejemplo, los correos ele­c­tró­ni­cos so­s­pe­cho­sos son re­cha­za­dos o puestos en cua­re­n­te­na (carpeta de spam). El protocolo de ide­n­ti­fi­ca­ción de Do­mai­n­Ke­ys, el Sender Policy Framework (SPF) o las listas grises son re­s­po­n­sa­bles de ello. Además, se ha vuelto más o menos estándar recibir correos ele­c­tró­ni­cos no solo a través del puerto tra­di­cio­nal 25/TCP, sino también a través del puerto 587/TCP, con el fin de ga­ra­n­ti­zar la tra­n­s­mi­sión ex­clu­si­va­me­n­te a usuarios au­te­n­ti­fi­ca­dos.

¿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). Co­m­ple­me­n­ta el protocolo con comandos adi­cio­na­les en código ASCII de 8 bits, que han permitido a muchas nuevas funciones ahorrar ancho de banda y proteger los se­r­vi­do­res. Estos incluyen, por ejemplo:

  • Au­te­n­ti­ca­ción del remitente
  • Cifrado SSL de correos ele­c­tró­ni­cos
  • Po­si­bi­li­dad de adjuntar archivos mu­l­ti­me­dia a los correos ele­c­tró­ni­cos
  • Re­s­tri­c­cio­nes de tamaño del correo ele­c­tró­ni­co según los valores pre­de­te­r­mi­na­dos del servidor
  • Envío si­mu­l­tá­neo a varios de­s­ti­na­ta­rios
  • Mensajes de error no­r­ma­li­za­dos en caso de que no se pueda realizar la entrega

Fi­na­l­me­n­te, te mostramos algunos ejemplos de comandos ESMTP:

Comando ESMTP Si­g­ni­fi­ca­do
EHLO El “Hello” al­te­r­na­ti­vo 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 co­m­pa­ti­ble con ESMTP, la sesión se inicia co­rre­c­ta­me­n­te. De lo contrario, el cliente debe utilizar SMTP.
8BITMIME El cliente solicita al servidor que permita el juego de ca­ra­c­te­res ASCII de 8 bits en el cuerpo del mensaje.
SIZE El cliente solicita al servidor que es­pe­ci­fi­que el tamaño máximo permitido de correo ele­c­tró­ni­co en bytes.
STARTTLS El cliente pregunta si el servidor admite el cifrado TLS.
Ir al menú principal