Protocolo SMTP

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

Conexión POP

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 y 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:<fuentearrobahost0>). 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:<destinoarrobahost>. 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;" 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 (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.

Pasos para realizar la configuración

1.- Doble click a su Programa de Correo(Outlook Express).
2.- Vaya a Herramientas(Tools)-->Cuentas(Accounts)-->Correo(Mail).
3.- Elimine la cuenta creada de Terra.
4.- De un click en Agregar -->Correo.
5.- Ingrese su nombre que aparezca en el correo y de un click en siguiente.
6- Ingrese su casilla de correo electrónico buzónarrobanombre y de un click en siguiente.
7- Aparecerá "Mi Servidor de Correo Entrante es : POP3"
8- En la parte inferior dice “Correo Entrante(POP3)” ingrese con letras minúsculas: pop3.terra.cl; y en el “Correo Saliente(SMTP)” ingrese con letras minúsculas: smtp.terra.cl, y de un click en siguiente.
9.- Aparecerá en “Nombre de cuenta” su correo usuarioarrobaterra.cl y abajo ingrese la contraseña que dio a su correo y de un click en siguiente.
10.- Ahí aparece abajo Finalizar; entonces de un click en "Finalizar".
11.- Aparecerá una ventana de Cuentas de internet, en la pestaña de correo, seleccione la cuenta que creó y de un click sobre el botón Propiedades (Properties).
12.- De un click sobre la pestaña Servidores (Servers).
13.- Marque la opción: Mi servidor requiere autenticación (My server requires authentication).
14.- Dar un click sobre el botón: Configuración.
15.- Marcar la opción: Usar la misma configuración que el servidor de correo entrante.
16.- De un click sobre el botón Aceptar (OK), hasta que vuelva a la ventana de “Cuentas de internet” y de un clic en cerrar.
17.- Por ultimo cierre si programa de correo reinicie su PC.

Flujo de transacción de correo de SMTP:

ConexionSMTP

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ónarrobanombre 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". 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, que el servidor reconoce con "250 OK" o el mensaje de error apropiado si cualquier cosa fue mal.

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.

Establecimiento de la conexión

Un emisor SMTP intentará establecer una conexión TCP con un computador destino cuando tiene uno o más mensajes de correo para entregar a ese computador siguiendo los siguientes pasos:

1º El emisor (parte activa) abre una conexión TCP con el receptor.

2º Una vez establecida la conexión, el receptor se identifica a sí mismo con la orden "220 Service Ready" que indica que el servicio está preparado.

3º Después el emisor es el que se identifica a sí mismo con la orden "HELO".

4º Por último el receptor acepta la identificación del emisor con la orden "250 OK" que indica que la acción de correo solicitada es correcta.

Transferencia de correo

En estos momentos la conexión ya se ha establecido, el emisor SMTP puede enviar uno o más mensajes al receptor SMTP.

Protocolo para enviar mensajes:

1º Una orden "MAIL" identifica al que originó el mensaje. Esta orden da el camino inverso que puede utilizarse para informar de errores.

2º Una o más órdenes RCPT identifican los destinos de este mensaje. La orden RCPT identifica un destino individual de los datos del correo. Usando esta orden se pueden usar destinos múltiples.

3º Una orden DATA transfiere el texto del mensaje.

La ventaja del RCPT es que el emisor no enviará el mensaje hasta que esté seguro que el receptor está preocupado para recibir el mensaje para al menos un destino evitando el tiempo suplementario de enviar un mensaje entero para aprender que el destino es desconocido.

Cierre de la conexión

El emisor SMTP cierra la conexión en dos pasos:

1º El emisor envía una orden "QUIT" y espera una respuesta.

2º Se inicia la operación de cierre TCP para la conexión TCP.

Véase También

Fuentes