¿No sabes por dónde empezar? Ayúdanos normalizando artículos.
¿Tienes experiencia? Crea alguno de estos artículos de actualidad.

Diferencia entre revisiones de «Protocolo SMTP»

Línea 1: Línea 1:
{{Desarrollo}}{{Definición|Nombre=Protocolo SMTP|imagen=Protocolo_smtp.jpg|concepto=}}<div align="justify">'''Simple Mail Transfer Protocol (SMTP)''' o Protocolo Simple de Transferencia de Correo; El [[Correo_electrónico|Correo Electrónico]] es considerado el servicio más utilizado de [[Internet|Internet]]. Por lo tanto, la serie de protocolos TCP/IP ofrece una gama de protocolos que permiten una fácil administración del enrutamiento del correo electrónico a través de la red.  
+
{{Desarrollo}}{{Definición|Nombre=Protocolo SMTP|imagen=Protocolo_smtp.jpg|concepto=}}<div align="justify">'''Simple Mail Transfer Protocol (SMTP)''' o Protocolo Simple de Transferencia de Correo; El [[Correo electrónico|Correo Electrónico]] es considerado el servicio más utilizado de [[Internet|Internet]]. Por lo tanto, la serie de protocolos TCP/IP ofrece una gama de protocolos que permiten una fácil administración del enrutamiento del correo electrónico a través de la red.  
 
Éste es un protocolo que funciona en línea, encapsulado en una trama [[TCP/IP]]. El correo se envía directamente al [[Servidor de Correo]] del destinatario. El protocolo SMTP funciona con comandos de textos enviados al servidor SMTP (al puerto 25 de manera predeterminada). A cada comando enviado por el Cliente (validado por la cadena de caracteres [[ASCII]] CR/LF, que equivale a presionar la tecla Enter) le sigue una respuesta del servidor SMTP compuesta por un número y un mensaje descriptivo.  
 
Éste es un protocolo que funciona en línea, encapsulado en una trama [[TCP/IP]]. El correo se envía directamente al [[Servidor de Correo]] del destinatario. El protocolo SMTP funciona con comandos de textos enviados al servidor SMTP (al puerto 25 de manera predeterminada). A cada comando enviado por el Cliente (validado por la cadena de caracteres [[ASCII]] CR/LF, que equivale a presionar la tecla Enter) le sigue una respuesta del servidor SMTP compuesta por un número y un mensaje descriptivo.  
  
Línea 8: Línea 8:
 
Con el tiempo se ha convertido en uno de los protocolos más usados en internet. Para adaptarse a las nuevas necesidades surgidas por el crecimiento y popularidad de internet se han hecho varias ampliaciones a este protocolo, como por ejemplo enviar texto con formato.  
 
Con el tiempo se ha convertido en uno de los protocolos más usados en internet. Para adaptarse a las nuevas necesidades surgidas por el crecimiento y popularidad de internet se han hecho varias ampliaciones a este protocolo, como por ejemplo enviar texto con formato.  
  
== Funcionamiento del Protocolo SMTP<br> ==
+
== Funcionamiento del Protocolo SMTP<br> ==
  
 
*Cuando un cliente establece una conexión con el servidor SMTP, espera a que éste envíe un mensaje "220 Service ready" o "421 Service non available"
 
*Cuando un cliente establece una conexión con el servidor SMTP, espera a que éste envíe un mensaje "220 Service ready" o "421 Service non available"
Línea 24: Línea 24:
 
*Tras el envío, el cliente, si no tiene que enviar más correos, con la orden QUIT corta la conexión. También puede usar la orden TURN, con lo que el cliente pasa a ser el servidor, y el servidor se convierte en cliente. Finalmente, si tiene más mensajes que enviar, repite el proceso hasta completarlos.
 
*Tras el envío, el cliente, si no tiene que enviar más correos, con la orden QUIT corta la conexión. También puede usar la orden TURN, con lo que el cliente pasa a ser el servidor, y el servidor se convierte en cliente. Finalmente, si tiene más mensajes que enviar, repite el proceso hasta completarlos.
  
== Ejemplos ==
+
== Flujo de transacción de correo de SMTP: ==
  
== Aplicación Práctica<br> ==
+
Aunque los comandos y réplicas de correo están definidas rígidamente, el intercambio se puede seguir en Figura - Flujo de datos normal de SMTP. Todos los comandos, réplicas o datos intercambiados son líneas de texto, delimitadas por un &lt;CRLF&gt;. Todas las réplicas tienen un código numérico el comienzo de la línea.
 +
 
 +
*El emisor SMTP establece una conexión TCP con el SMTP de destino y espera a que el servidor envíe un mensaje "220 Service ready" o "421 Service not available" cuando el destinatario es temporalmente incapaz de responder.
 +
*Se envía un HELO (abreviatura de "hello"), con el que el receptor se identificará devolviendo su nombre de dominio. El SMTP emisor puede usarlo para verificar si contactó con el SMTP de destino correcto.
 +
*Si el emisor SMTP soporta las extensiones de SMTP definidas en el RFC 1651, puede sustituir el comando HELO por EHLO. Un receptor SMTP que no soporte las extensiones responderá con un mensaje "500 Syntax error, command unrecognized". El emisor SMTP debería intentarlo de nuevo con HELO, o si no puede retransmitir el mensaje sin extensiones, enviar un mensaje QUIT.
 +
 
 +
Si un receptor SMTP soporta las extensiones de servicio, responde con un mensaje multi-línea 250 OK que incluye una lista de las extensiones de servicio que soporta.
 +
 
 +
*El emisor inicia ahora una transacción enviando el comando MAIL al servidor. Este comando contiene la ruta de vuelta al emisor que se puede emplear para informar de errores. Nótese que una ruta puede ser más que el par buzón@nombre de dominio del host. Además, puede contener una lista de los hosts de encaminamiento. Si se acepta, el receptor replica con un "250 OK".
 +
*El segundo paso del intercambio real de correo consiste en darle al servidor SMTP el destino del mensaje(puede haber más de un receptor). Esto se hace enviando uno o más comandos RCPT TO:&lt;forward-path&gt;. Cada uno de ellos recibirá una respuesta "250 OK" si el servidor conoce el destino, o un "550 No such user here" si no.
 +
*Cuando se envían todos los comandos rcpt, el emisor envía un comando DATA para notificar al receptor que a continuación se envían los contenidos del mensaje. El servidor replica con "354 Start mail input, end with &lt;CRLF&gt;.&lt;CRLF&gt;". Nótese que se trata de la secuencia de terminación que el emisor debería usar para terminar los datos del mensaje.
 +
*El cliente envía los datos línea a línea, acabando con la línea &lt;CRLF&gt;. &lt;CRLF&gt; que el servidor reconoce con "250 OK" o el mensaje de error apropiado si cualquier cosa fue mal.
 +
 
 +
'''Ahora hay varias acciones posibles:'''<br>
 +
 
 +
*El emisor no tiene más mensajes que enviar; cerrará la conexión con un comando QUIT, que será respondido con "221 Service closing transmission channel".
 +
*El emisor no tiene más mensajes que enviar, pero está preparado para recibir mensajes(si los hay) del otro extremo. Mandará el comando TURN. Los dos SMTPs intercambian sus papelees y el emisor que era antes receptor puede enviar ahora mensajes empezando por el paso 3 de arriba.
 +
*El emisor tiene otro mensaje que enviar, y simplemente vuelve al paso 3 para enviar un nuevo MAIL.
 +
 
 +
<br>../Protocolos en TCP.IP/El protocolo SMTP
 +
 
 +
<br>
 +
 
 +
== Ejemplos  ==
 +
 
 +
== Aplicación Práctica<br> ==
  
 
== Véase También<br>  ==
 
== Véase También<br>  ==

Revisión del 15:39 21 abr 2011

Protocolo SMTP
Información sobre la plantilla
Protocolo smtp.jpg
Simple Mail Transfer Protocol (SMTP) o Protocolo Simple de Transferencia de Correo; El Correo Electrónico es considerado el servicio más utilizado de Internet. Por lo tanto, la serie de protocolos TCP/IP ofrece una gama de protocolos que permiten una fácil administración del enrutamiento del correo electrónico a través de la red.

Éste es un protocolo que funciona en línea, encapsulado en una trama TCP/IP. El correo se envía directamente al Servidor de Correo del destinatario. El protocolo SMTP funciona con comandos de textos enviados al servidor SMTP (al puerto 25 de manera predeterminada). A cada comando enviado por el Cliente (validado por la cadena de caracteres ASCII CR/LF, que equivale a presionar la tecla Enter) le sigue una respuesta del servidor SMTP compuesta por un número y un mensaje descriptivo.

Historia del Protocolo SMTP

En 1982 se diseñó el primer Sistema para intercambiar correos electrónicos en ARPANET, definido en los Request for comments RFC 821 y RFC 822. La primera de ellas define este protocolo y la segunda el formato del mensaje que este protocolo debía transportar.

Con el tiempo se ha convertido en uno de los protocolos más usados en internet. Para adaptarse a las nuevas necesidades surgidas por el crecimiento y popularidad de internet se han hecho varias ampliaciones a este protocolo, como por ejemplo enviar texto con formato.

Funcionamiento del Protocolo SMTP

  • Cuando un cliente establece una conexión con el servidor SMTP, espera a que éste envíe un mensaje "220 Service ready" o "421 Service non available"
  • Se envía un HELO desde el cliente. Con ello el servidor se identifica. Esto puede usarse para comprobar si se conectó con el servidor SMTP correcto.
  • El cliente comienza la transacción del correo con la orden MAIL FROM. Como argumento de esta orden se puede pasar la dirección de correo al que el servidor notificará cualquier fallo en el envío del correo (Por ejemplo, MAIL FROM:<fuente@host0>). Luego si el servidor comprueba que el origen es valido, el servidor responde “250 OK”.
  • Ya le hemos dicho al servidor que queremos mandar un correo, ahora hay que comunicarle a quien. La orden para esto es RCPT TO:<destino@host>. Se pueden mandar tantas órdenes RCPT como destinatarios del correo queramos. Por cada destinatario, el servidor contestará “250 OK” o bien “550 No such user here”, si no encuentra al destinatario.
  • Una vez enviados todos los RCPT, el cliente envía una orden DATA para indicar que a continuación se envían los contenidos del mensaje. El servidor responde “354 Start mail input, end with <CRLF>.<CRLF>” Esto indica al cliente como ha de notificar el fin del mensaje.
  • Ahora el cliente envía el cuerpo del mensaje, línea a línea. Una vez finalizado, se termina con un <CRLF>.<CRLF> (la última línea será un punto), a lo que el servidor contestará “250 OK”, o un mensaje de error apropiado.
  • Tras el envío, el cliente, si no tiene que enviar más correos, con la orden QUIT corta la conexión. También puede usar la orden TURN, con lo que el cliente pasa a ser el servidor, y el servidor se convierte en cliente. Finalmente, si tiene más mensajes que enviar, repite el proceso hasta completarlos.

Flujo de transacción de correo de SMTP:

Aunque los comandos y réplicas de correo están definidas rígidamente, el intercambio se puede seguir en Figura - Flujo de datos normal de SMTP. Todos los comandos, réplicas o datos intercambiados son líneas de texto, delimitadas por un <CRLF>. Todas las réplicas tienen un código numérico el comienzo de la línea.

  • El emisor SMTP establece una conexión TCP con el SMTP de destino y espera a que el servidor envíe un mensaje "220 Service ready" o "421 Service not available" cuando el destinatario es temporalmente incapaz de responder.
  • Se envía un HELO (abreviatura de "hello"), con el que el receptor se identificará devolviendo su nombre de dominio. El SMTP emisor puede usarlo para verificar si contactó con el SMTP de destino correcto.
  • Si el emisor SMTP soporta las extensiones de SMTP definidas en el RFC 1651, puede sustituir el comando HELO por EHLO. Un receptor SMTP que no soporte las extensiones responderá con un mensaje "500 Syntax error, command unrecognized". El emisor SMTP debería intentarlo de nuevo con HELO, o si no puede retransmitir el mensaje sin extensiones, enviar un mensaje QUIT.

Si un receptor SMTP soporta las extensiones de servicio, responde con un mensaje multi-línea 250 OK que incluye una lista de las extensiones de servicio que soporta.

  • El emisor inicia ahora una transacción enviando el comando MAIL al servidor. Este comando contiene la ruta de vuelta al emisor que se puede emplear para informar de errores. Nótese que una ruta puede ser más que el par buzón@nombre de dominio del host. Además, puede contener una lista de los hosts de encaminamiento. Si se acepta, el receptor replica con un "250 OK".
  • El segundo paso del intercambio real de correo consiste en darle al servidor SMTP el destino del mensaje(puede haber más de un receptor). Esto se hace enviando uno o más comandos RCPT TO:<forward-path>. Cada uno de ellos recibirá una respuesta "250 OK" si el servidor conoce el destino, o un "550 No such user here" si no.
  • Cuando se envían todos los comandos rcpt, el emisor envía un comando DATA para notificar al receptor que a continuación se envían los contenidos del mensaje. El servidor replica con "354 Start mail input, end with <CRLF>.<CRLF>". Nótese que se trata de la secuencia de terminación que el emisor debería usar para terminar los datos del mensaje.
  • El cliente envía los datos línea a línea, acabando con la línea <CRLF>. <CRLF> que el servidor reconoce con "250 OK" o el mensaje de error apropiado si cualquier cosa fue mal.

Ahora hay varias acciones posibles:

  • El emisor no tiene más mensajes que enviar; cerrará la conexión con un comando QUIT, que será respondido con "221 Service closing transmission channel".
  • El emisor no tiene más mensajes que enviar, pero está preparado para recibir mensajes(si los hay) del otro extremo. Mandará el comando TURN. Los dos SMTPs intercambian sus papelees y el emisor que era antes receptor puede enviar ahora mensajes empezando por el paso 3 de arriba.
  • El emisor tiene otro mensaje que enviar, y simplemente vuelve al paso 3 para enviar un nuevo MAIL.


../Protocolos en TCP.IP/El protocolo SMTP


Ejemplos

Aplicación Práctica

Véase También

Fuentes