Práctica No. 4

Administrador POP

 

Objetivo:

El objetivo de esta práctica es el de aprender a usar el POP para realizar un programa el cual nos administre los correos de nuestras cuentas


Introducción:

¿Qué es POP?

El servicio POP (Post Office Protocol) permite a los usuarios leer el correo sin tener que entrar en el servidor ni aprender a usar un engorroso programa de mail.

A diferencia del servicio E-mail aliasing, el servicio POP almacena su correo en su servidor virtual. Una vez configurado el POP cliente para cada área/departamento, éstos podrán bajar sus mensajes en forma individual. El servicio POP virtual le permite establecer múltiples direcciones de E-mail, y acceder a éstas con tan sólo una (o más) cuentas de conexión desde su proveedor de acceso local.

Modelo de comunicaciones POP

La descripción del protocolo POP y su modelo de comunicaciones, esta en el documento oficial estándar RFC 1725. Este modelo de comunicaciones se basa en el concepto de buzón. Al igual que ocurre en una oficina de correos local, de una ciudad, tiene un espacio para almacenar el correo, las cartas, hasta que se recojan. De igual manera el servidor POP almacena el correo electrónico en buzones hasta que un programa cliente lo recupera. El cliente POP se conecta con el servidor a través del puerto TCP 110. Para entrar en el servidor, es necesario una cuenta de identificación en dicha maquina (lo que le permite tener un espacio reservado para su correo).

Comandos del protocolo POP

Los diseñadores decidieron establecer un conjunto de comandos POP reducido, lo más simple posible, añadiendo en versiones posteriores del protocolo algunas funcionalidades adicionales. El diálogo entre el cliente y el servidor, se basa en el envío de comandos y el servidor responde con un código de repuesta y pasando a un estado.

Códigos de respuesta

Los diseñadores del protocolo decidieron que lo importante en este protocolo era conocer si los comandos funcionaban o no, por tanto solo establecieron dos códigos de respuesta, uno para cuando el comando funciona correctamente y otro para cuando no funciona correctamente. Los códigos de respuesta que el servidor POP envía van seguidos de una frase que explica o aclara el por que de ese código, lo que nos puede ayudar a conocer cual es el motivo de los errores, si se producen.

Código Significado

+OK El comando funcionó correctamente

+ERR El comando fallo

Comandos POP

Los comandos POP los podemos agrupar según el estado en el que se encuentre el servidor, así tendremos comandos del estado de autorización, comando del estado de transacción, comandos del estado de actualización y comandos opcionales: Comandos del estado de autorización Comandos del estado de transacción Comandos del estado de actualización Comandos POP opcionales

Comandos del estado de autorización

Al conectarse a un servidor POP, este entra en un estado de autorización. El cliente de correo debe enviarle el nombre de la cuenta y la clave para poder continuar. Si son correctos, el buzón correspondiente a esa cuenta se pasa a un estado de bloqueo exclusivo para impedir que los mensajes sean modificados o borrados antes de llegar al estado de actualización del servidor POP. Si no se consigue pasar el buzón al estado de bloqueo exclusivo, se produce un fallo y no se puede pasar al estado de transacción.

- PASS (clave): este comando le indica al servidor la clave de la cuenta de usuario indicada por el comando USER. Si la clave no es correcta o el buzón no se pudo pasar al estado de bloqueo exclusivo, se produce un error. La sintaxis de este comando es la siguiente:

PASS clave#13#10

-QUIT: este es un comando que se puede usar cuando el servidor está en estado de autorización y en estado de transacción. Si se usa cuando esta en estado de autorización, la sesión finaliza y se interrumpe la conexión. Si se usa cuando esta en estado de transacción, se cierra la sesión y pasa el servidor pasa a estado de actualización. La sintaxis de este comando es la siguiente:

QUIT#13#10

- USER: este comando le proporciona o le indica al servidor, el identificador o nombre de la cuenta de usuario. Si ese identificador existe, devuelve un código de respuesta de operación correcta, sino devuelve un código de respuesta de fallo.

USER id-cuenta#13#10

Comandos del estado de transacción

En este estado, el cliente puede enviar comandos para tratar el correo, conocer si tiene o no, correo nuevo, borrar correo (marcar como borrado), recuperarlo, almacenarlo, etc.

- DELE (eliminar): este comando marca como eliminado un mensaje, pero en realidad el servidor no lo elimina hasta que no pasa al estado de actualización, con lo cual no se perderían en el caso de que la conexión fallase o que quisiéramos quitarle la marca de eliminar. Cada mensaje que esta en el buzón del servidor POP tiene asignado un numero, que es el numero con el cual identificaremos a los mensajes como en este caso para marcarlo como borrado. La sintaxis es la siguiente para este comando:

DELE numero_mensaje#13#10

- LIST: este comando recupera información a cerca del tamaña que ocupa un mensaje determinado o sobre todos los mensajes. En el caso de que se aplique sobre un solo mensaje, el servidor responde con una línea, indicando el numero de mensaje y el tamaño. Si no se envía con un numero de mensaje, el servidor responde enviando una línea por cada mensaje con el numero y tamaño. El final de estas líneas es un punto precedido y seguido por los caracteres #13#10. La sintaxis de este comando es:

LIST [numero_mensaje]#13#10

- NOOP (no operación): es un comando de no operación que cuando se envía, el servidor responde con un OK. Se utiliza para mantener activa la sesión. La sintaxis del comando es la siguiente:

NOOP#13#10

- RETR (recuperar): este es un comando para recuperar o solicitar que el servidor envíe un mensaje determinado. El mensaje se solicita enviando el numero de mensaje a continuación del comando. Este numero de mensaje no puede corresponder a un mensaje con marca de borrado. El servidor responde a la petición enviando el texto del mensaje, que finaliza cuando le llega al cliente un punto seguido y precedido de los caracteres de retorno de carro/avance de línea (#13#10). La sintaxis del comando es:

RETR numero_mensaje#13#10

- RSET (reiniciar): este comando anula la marca de borrado de todos los mensajes que tengan dicha marca en el buzón. No se puede eliminar la marca de borrado de un mensaje en concreto, tiene que ser de todos. La sintaxis es la siguiente:

RSET#13#10

- STAT (estado): este comando obtiene un resumen del contenido del buzón. El servidor responde a este comando enviando el numero de mensajes que hay en el buzón, sin contar aquellos que están marcados como borrados, y el volumen o tamaño en bytes del buzón. Estos dos datos los devuelve separados por espacios. La sintaxis de este comando es:

STAT#13#10

Comandos del estado de actualización

En este estado no hay comandos. A este estado se llega desde es estado de transacción cuando enviamos al servidor el comando QUIT. En el estado de actualización se eliminan los mensajes que han sido marcados en el estado anterior. A continuación se le quita el bloqueo exclusivo al buzón para que pueda actulizarse dicho buzón con nuevo correo. Por ultimo, el servidor termina la conexión.

Comandos POP opcionales

Los comandos vistos hasta ahora, son los comandos básicos necesarios, pero hay otros comandos que proporcionan una mayor flexibilidad en el cliente sin complicar en exceso el protocolo.

- APOP (entrar en el sistema con contraseña encriptada): La sintaxis de este comando es la siguiente:

APOP id_cuenta clave_encriptada#13#10

- TOP: este comando permite al cliente de correo recuperar la parte del encabezado del mensaje y un numero de líneas del cuerpo o núcleo del mensaje. La sintaxis de este comando es:

TOP numero_mensaje numero_lineas_del_cuerpo#13#10

- UIDL (lista de identificadores únicos): La sintaxis de este comando es:

UIDL [numero_mensaje]#13#10

 


Material:

Una computadora

Visual Basic 6

Conección a Internet


Desarrollo

El desarrollo de la práctica es la siguiente:

1.- Abres una forma nueva en Visual Basic.

2.- Diseñas la interfaz para que el programa sea automático y manual.

3.- Añades a la forma el Winsock

4.- Empiezas a programar.

a) Para empezar vas a diseñar el programa para que cuando corra se pueda conectar automaticamente a VENUS o cualquier otro enlace POP.

b)Programas cada accion de los botones para la forma automatica.

c)Estos son los pasos para obtener el correo POP:

Estos pasos son:

1) Conectar con el servidor POP.

2) Recibir el saludo del servidor y enviar el comando USER con el nombre de la cuenta de usuario necesaria.

3) Recibir la respuesta al comando USER y enviar el comando PASS con la clave de la cuenta que nos permitirá entrar.

4) Recibir la respuesta del comando PASS y enviar el comando STAT para averiguar cuantos mensajes hay disponibles en el buzón.

5) Cuando se recibe la respuesta al comando STAT, caven varias posibilidades, una puede ser emplear el comando TOP para obtener los encabezados de los mensajes y posteriormente elegir que mensaje se desea traer con el comando RETR o bien se pueden traer uno o varios, incluso todos los mensajes enteros con el comando RETR.

6) Después de recibir la respuesta del comando enviado en el paso anterior, y de recibir un mensaje, o todos, se pueden eliminar del buzón o dejarlos. Lo más normal es borrar aquellos mensajes que ya se hayan recuperado para que no ocupen espacio. Esto se hace con el comando DELE.

7) Por ultimo solo queda enviar el comando QUIT para finalizar la sesión y pasar el servidor al estado en el que tiene que eliminar los mensajes marcados como borrados.

8) El cliente recibe la respuesta al comando QUIT y finaliza la conexión.

d) Tu programa debe de tener los botones de VER, BORRAR y SALIR


Conclusiones:

Esta práctica nos ayudo a aprender el uso de los comandos del POP para administrar tu cuenta de correos.