Electronic Mail: SMTP, POP3, IMAP

De Departamento de Informatica
Saltar a: navegación, buscar

Contenido

Correo electrónico

Descripción

En la siguiente imagen se presentan los principales componentes del sistema de correo electrónico:

Versión simplificada de una trasferencia de correo electrónico.

1: A través de su agente de usuario el emisor compone un mensaje, el cuál una vez terminado es envíado por el agente de usuario al servidor de correo del emisor.

2: El mensaje es colocado en la cola de mensajes salientes del servidor de correo del emisor.

3: El mensaje es transmitido hacia el servidor de correo del receptor, pasando por varios routers hasta llegar a su destino.

4: El mensaje es puesto en el buzón de correo del receptor, a la espera de ser leído.

5: A través de su agente de usuario el receptor recupera el mensaje para ser leído desde su servidor de correo.

Protocolos involucrados

SMTP

Descripción

SMTP es el principal protocolo de la capa de aplicación para el correo electrónico, basado en el modelo cliente-servidor. Transfiere mensajes desde el servidor de correo del emisor hacia el servidor de correo del destinatario, utilizando el servicio de datos fiable de TCP. Cabe señalar que en este tipo de protocolo no existe la intervención de servidores intermedios entre la conexión del cliente y el servidor. SMTP usa el puerto 25 en el servidor para establecer la conexión.

Funcionamiento

Para ilustrar cómo funciona este proceso consideremos el siguiente escenario: Alicia le envía un mensaje a Benito.

1.- Alicia invoca su agente de usuario para correo electrónico y proporciona la dirección de correo de Benito. Luego crea un mensaje y le indica al agente que envíe el mensaje.

2.- El agente de usuario de Alicia envía el mensaje al servidor de correo de Alicia, donde es puesto en una cola de mensajes salientes.

3.- El cliente SMTP que se ejecuta en el servidor de correo de Alicia ve el mensaje alojado en la cola de mensajes. Luego, inicia una conexión TCP con un servidor SMTP que se ejecuta en el servidor de correo de Benito.

4.- Después de la fase de negociación inicial (handshaking) de SMTP, el cliente SMTP envía el mensaje de Alicia a través de la conexión TCP.

5.- En el servidor de correo de Benito, el lado del servidor de SMTP recibe el mensaje. Entonces, el servidor de correo coloca el mensaje en el buzón de Benito.

6.- A través de su agente de usuario, Benito obtiene el mensaje para ser leído.

Veamos ahora, más en detalle, el intercambio de mensajes entre el cliente (C) y el servidor (S). El cliente envía comandos al servidor y éste responde al cliente con un código numérico seguidos de un texto explicativo.

    S: 220 alumnos.inf.utfsm.cl ESMTP Postfix 
    C: HELO dodge.labs 
    S: 250  alumnos.inf.utfsm.cl 
    C: MAIL FROM: jparragu@alumnos.inf.utfsm.cl 
    S: 250 2.1.0 Ok 
    C: RCPT TO: user2@alumnos.inf.utfsm.cl 
    S: 250 2.1.5 Ok 
    C: DATA 
    S: 354 End data with <CR><LF>.<CR><LF> 
    C: Hola como estas? 
    C: 
    C: .
    C: 
    S: 250 2.0.0 Ok: queue as 3CAC2C106B
    C: QUIT 
    S: 221 2.0.0 Bye

En este ejemplo se ve que el cliente envía, desde la dirección dodge.labs, el mensaje Hola como estas? al servidor (cuya dirección de correo es alumnos.inf.utfsm.cl). A continuación se describen los comandos utilizados por el cliente:

  • HELO: Abre una sesión con el servidor. Se puede ver que aquí el cliente se identifica con el servidor.
  • MAIL FROM: Dirección de correo de quién envía el mensaje.
  • RCPT TO: Dirección de correo de quién recibe el mensaje.
  • DATA: Indica el comienzo del mensaje. El fin del mensaje se indica con una línea que contiene únicamente un punto.
  • QUIT: Cierra la conexión.

A continuación se describe el significado de los códigos que aparecen en el ejemplo:

  • 220 : "Service Ready" -> Indica que la conexión con el servidor SMTP fue exitosa.
  • 250 : En el ejemplo podemos distinguir 2 casos en el cuál éste código se presenta. Primero, cuando el cliente indica la dirección de correo del receptor, el servidor responde con un "250 OK" si dicha dirección es válida. Segundo, cuando el cliente termina de componer el cuerpo del mensaje y lo envía, el servidor responde "250 OK" si el mensaje se envió correctamente.
  • 354 : En respuesta al comando DATA. El servidor le indica al cliente como debe finalizar el mensaje (en este caso con una línea que contenga únicamente un punto).
  • 221 : Indica que se ha cerrado la conexión con el servidor SMTP.

POP3

El Post Office Protocol (versión 3) es un protocolo de acceso a correo que se caracteriza por su simpleza. Trabaja mediante comandos enviados por el agente del usuario (por ejemplo un cliente de correo electronico, como Thunderbird) al servidor de correos que retorna +OK junto a algunos datos (si lo amerita) en caso de que la orden fuese correcta y -ERR en caso contrario. Se organiza en tres fases:

1.- Autorización: El agente del usuario envia el usuario y contraseña para realizar la autentificación. Los comandos usados para esto son "user NombreDeUsuario>" y "pass Contraseña".

2.- Transacción: El usuario recupera mensajes, obtiene estadisticas o marca/desmarca mensajes para borrado. Dependiendo de si la configuración es "descargar y borrar" o "descargar y guardar" los mensajes que el usuario recupere serán o no marcados para borrado por el cliente y eliminados (o no) durante la etapa de acualización. En el caso de "descargar y borrar" el usuario no podrá volver a ver su correos desde un equipo diferente, al contrario de si estuviese configurada la modalidad de "descargar y guardar". Los comandos usados en esta fase son: list para listar los correos (index y largo solamente), retr para recuperar un mensaje en especifico, dele para marcar para borrado y quit para cerrar la sesión POP3.

3.- Actualización: Cuando el usuario cierra la sesion POP3 (mediante el comando quit), el servido procede a borrar los mensajes que el cliente del usuario marcó para borrado.


Como se dijo en un principio, POP3 es un protocolo bastante simple: no tiene soporte de carpetas ni conserva información de estado (como pueden ser las marcas de borrado en los mensajes) de una sesión a otra. Estas y otras cosas lo convierten en un protocolo fácil de implementar a nivel de servidor pero que muchas veces no satisface todas las necesidades de los usuarios.

Puerto

  • 110/TCP

IMAP

Protocolo para acceder a los correos electrónicos actualmente en la version 4rev1. Es muy similar al protocolo POP3 salvo algunas diferencias que detallaremos a continuación: los mensajes no son descargados al computador, lo cuál es muy útil para computadores compartidos, ya que los correos electrónicos sólo son visibles mientras esté activa la sesión, por lo que se dice que éste protocolo sólo trabaja de manera online. Además brinda más criterios para organizar los correos. IMAP define varios mecanismos que mejoran la interacción del usuario con el servidor IMAP a través de extensiones, como por ejemplo la más utilizada IMAP IDLE que sirve para que el servidor avise al cliente cuando ha llegado un nuevo mensaje de correo y éstos se sincronicen de manera instantánea mejorando la comuncación (Mozilla Thunderbird hace uso de la extensión IMAP IDLE), ya que habitualmente los clientes de correo revisan periódicamente si se encuentran nuevos correos generando en ciertos momentos un retardo en la comunicación.

Puertos

  • 143/TCP
  • 220/TCP (IMAP3)
  • 993/TCP (IMAPS)




Versión completa transferencia de correo electrónico.
Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas