Desarrollo de un Cliente de Correo Electrónico Basado en Web – Parte 1
Introducción
Ok la intención de esta serie de artículos es la de crear un cliente de correo electrónico basado en Web muy al estilo de Hotmail, Yahoo, webmail, gmail, etc.
Si has vivido en una isla desierta los últimos 10 años entonces no sabes lo que es el correo electrónico, si este es tu caso adiós, sayonara, bye bye, zárpele a buscar un tutorial de correo electrónico porque en esta serie de cursos no vamos a hablar de lo que es el correo electrónico que es y como se come porque el único requisito que estoy asumiendo es que todos ustedes tengan alguna cuenta de correo electrónico, que ya hayan enviado correos a sus amigos, primos, novios, vecinos, esposas (suertudotes si tiene mas de una), al perro, al gato, a algún extraño ya de jodido.
Además de que tengan alguna noción de programación (digo va a estar carbón explicar los conceptos de un cliente de e-mail y además explicarles que es lo que hace un pinché if ).
Después de la pequeña introducción vamos a entrarle a lo bueno pero para que vean que no soy funda veamos que es un cliente de e-mail y cuales son sus características.
Un cliente de e-mail es un programa de computadora que se usa para leer y enviar e-mail (daaaaa), este tipo de programas pueden ser de tipo fat (gruesos) en donde toda la funcionalidad es implementada del lado del cliente o de tipo thin (delgado) o sea que corren en ambientes Web y por si aun no les cae el veinte o de plano no leyeron el titulo de los tutoriales vamos a implementar el segundo tipo de clientes o sea uno Web.
Cuando el usuario revisa su e-mail el cliente se conectan al servidor de correo electrónico (pe. Exchange Server) para obtener la lista de e-mails, esta comunicación se hace utilizando ya sea POP3 o IMAP4. Cuando el cliente manda in e-mal lo envía al servidor utilizando el protocolo SMTP, adema de esto el cliente necesita implementar un estándar llamado MIME para el envío/recepción de archivos binarios dentro del e-mail.
Esto se pone peliagudo ya tenemos cuatro acrónimos (POP3, IMAP4, SMTP y MIME) y antes de que tengamos mas y esto se convierta en un desmadre y en otro lenguaje diferenta al español y también para que no les de frió (porque hasta acá se escuchan rascándose la cabeza) vamos a explicar cada uno de los protocolos y estándares usados en el proceso de envío/recepción de e-mail.
POP3
Esto quiere decir Post Office Protocol versión 3 es un protocolo que se usa para obtener e-mail del servidor, este protocolo funciona sobre una conexión TCP. El diseño de este protocolo soporta conexiones intermitentes tales como las famosas dial-up (si esas conexionas a través de una línea telefónica que se caen cada ves que uno presiona la tecla enter). permitiéndole a los usuarios bajar a la PC todos los correos cuando están conectados y una vez echo esto el usuario los puede ver o modificar sin necesidad de estar conectados. Casi todos los subscriptores a servicio de e-mail ofrecido por un proveedor utilizan este protocolo para la obtención de los correos.
IMAP4
Pero como todo por servir se acaba y en este negocio siempre hay algún segundo hijo de dios se cree mejor que tu y se la pasa encontrándole defectos y buscando la manera de darle en la madre a lo que hiciste pues este protocolo se invento con el fin de cubrir las deficiencias del anterior
Básicamente este protocolo se utiliza para los mismos propósitos que POP3 si embargo provee las siguientes mejoras sobre POP3
Soporte para modos conectados y desconectados
Cuando se utiliza POP3 por lo regular el usuario se conecta por un periodo breve de tiempo, solo se conectan el tiempo necesario para bajar los nuevos correos a su PC. Con IMAP4 por lo regular el cliente esta conectado mientras el cliente de correo electrónico permanece activa, si el usuario tiene correos que ocupan mucho espacio la opción de conectarse con IMAP4 suena razonable, o sea que si su compa les mando la ultima película de la Nicole Kidman (quessssote!!!!) por e-mail pues el uso de IMAP4 es la opción a usar.
Soporte para múltiples usuarios conectados en la misma caja de entrada (inbox).
El protocolo POP3 asume que el usuario es el único que esta conectado a el inbox, mientras que IMAP permite acceso simultaneo por múltiples clientes y proporciona mecanismos para que los clientes detecten los cambios hechos en el inbox por otros clientes.
Soporte para acceso partes de MIME y lecturas parciales
IMAP4 permite la retribución de partes MIME por separado (si no sabes que es MIME no te apures abajo lo explico) y también la de obtener ya sea todo o parte del mensaje, esto es un cliente puede obtener solo el texto que forma el mensaje pero no los activos anexados, esto permite mostrar el mensaje donde tu compa sin la necesidad de bajar también la película ( de la Nicole Quesssssote, presta ).
Soporte de almacenamiento en el servidor del estado de los mensajes
Una de las dolencias de POP3 es que los benditos mensajes a guev… digo a fuerzas se bajaban del servidor al cliente, con IMAP4 los mensajes pueden se bajados o pueden seguir en el servidor, y se cuenta con algunos indicadores que muestran el estado del mensaje por ejemplo si el mensaje ha sido leido, borrado, o se le hizo reply, estas banderas son almacenadas en el servidor de modo que los clientes que accedan al inbox pueda ver el estado del mensaje.
Soporte de acceso a múltiples cajas de entrada
Con IMAP el usuario puede crear múltiples cajas de entrada representadas en el cliente como carpetas, si han usado Outlook saben a lo que me refiero, de esta manera el administrador puede crear carpetas publicas o compartidas, en los proyectos en donde se requiere de mucha colaboración esta podría ser una alternativa viable.
Soporte de búsquedas del lado del servidor.
El protocolo IMAP4 permite al cliente requerirle al servidor un búsqueda de mensajes de un inbox especifico con cierto criterio de búsqueda, esta es una opción muy buena ya que el cliente no requiere de bajar todos los mensajes a la PC para poder buscar mensajes.
Define un mecanismo bien definido de extensibilidad
Si este protocolo provee una especificación para poder extenderlo si es que la especificación provista por default no es suficiente. Algunas extensiones basadas en este protocolo han sido creadas y están siendo usadas pero en este tutorial no vamos a hablar de ellas porque no las he usado y francamente me da gueva investigar como funcionan. Además de que no las vamos a necesitar.
SMTP (Simple Mail Transfer Protocol)
SMTP es un protocolo basado en texto realmente simple, en este protocolo se pueden especificar uno o mas destinatarios (o sea a toda la raza a la que le vas a enviar el jodido mail) las ventajas de este protocolo son que se puede verificar la existencia de los destinatarios antes de mandar el mensaje.
MIME (Multipropouse Internet Mail Extension)
Este no es un protocolo sino un estándar el cual se usa para mandar por e-mail archivos binarios, saben porque se creo este estándar? ……………………………… no? ….. mta PUES porque para poder mandar un mensaje necesitamos usar SMTP y si leyeron que digo leyeron si entendieron bien la sección anterior SMTP es basado en texto asi que este estándar tubo que ser creado para enviar archivos binarios quien no le ha mandado una foto a su alguien, la foto del nuevo bebe o la foto de ustedes con su nuevo look o mínimo la foto de la Nicole Kidman (queso, masita!!!!!! ) a un compa. Y por si no lo sabían el formato texto y el binario son como yerno y suegra, o sea que no se llevan bien pero se medio soportan con mucho trabajo. saludos a mi suegra.
Bueno ya se que ya se cansaron de leer pero déjenme les comento como va a estar organizado el ambiente de desarrollo o se aca?.
- La version que tengo instalada de PHP es la version 5
- Para el desarrollo de los scripts de PHP voy a usar el IDE llamado PHP Designer 2006.
- Para el desarrollo de las paginas HTML voy a usar también el PHP Designer 2006 lo mismo para Archivos CSS, XML o cualquier archivo de tags.
- El Web Server voy a usar IIS 6.0
El servidor de correo electronico.
Tengo instalado en mi PC un servidor de e-mail voy a usar uno que me proporciona mi proveedor de hospedaje, aquí es donde ustedes tendrán que ver la manera de cómo obtener un servidor de correo electrónico, una posible opción sera la versión de evaluación de Exchange Server en esta liga podrán encontrar una lista de servidores de correo electrónico, en este tutorial no vamos a cubrir la instalación y configuración de un servidor de correo electrónico.
Otra opción para probar la aplicación seria si ustedes pueden obtener una cuenta la cual pueden acceder por medio de un cliente como Outlook o Eudora, entonces en lugar de configurar Outlook o Eudora configuran su cliente y con eso se arma..
La estructura del sitio web
La estructura de carpetas es la siguiente:
admin – Esta carpeta va acontener todas las paginas relacionadas con la administrador del clinte de correo electrónico, por ejemplo las pagina en donde se configuran la dirección del servidor de correo electrónico.
css – Esta carpeta contendrá las hojas de estilo del cliente.
imgs – Contendrá todas las imágenes del sitio.
include – Esta carpeta contendrá los Scripts de PHP para la conexión al servidor.
js – Contendrá todo el código de JavaScript.
panes – Contendrá todos los paneles de opción del sito. Para ser franco no se si lo use o no, esta es la estructura que uso en todos mi sitios Web.
Bueno ya me voy tengo mucho sueño y ya me duelen los dedos si dije bien DEDOS así que nos vemos la próxima semana. Que tengan buen fin de semana no pisteen mucho, no coman tierra y si toman no manejen
Adiós.