JT2000 - POSTMAN: un cliente WebMail de alto rendimiento.

viernes, 17 de noviembre, sesión IX


Héctor Rulot, Jose Agustin Lopez Bueno

(Universitat de València)

RESUMEN

"Postman" es un cliente de Correo con interfaz Web diseñado y programado en el Servicio de Informática de la Universitat de València.

El programa ha sido desarrollado en respuesta a las necesidades planteadas en nuestra universidad en materia de correo electrónico fácil, seguro, accesible y de alto rendimiento; necesidades que no encontraron solución adecuada en los distintos programas disponibles en ese momento en la red. Concretamente, las condiciones eran (además de las elementales de facilidad y comodidad de la interfaz):

- Cliente IMAP, con posibilidad de utilizar varios servidores y múltiples buzones remotos por usuario. - Que mantuviera la conexión con el servidor IMAP durante la sesión del usuario. - Soporte, en una misma máquina de un elevado número de sesiones (varios centenares). - "shareware" o "freeware", "open source".

El desarrollo de "Postman" se efectuó pues teniendo estas condiciones en mente, así como la características, puntos fuertes y debilidades de muchos otros clientes "WebMail" estudiados con anterioridad.

Como resultado de ello, las principales características de Postman son actualmente:

-Open source. -Codificado en C++. -Puro HTML. No se usan cookies, Java ni Javascripts. -Soporta protocolo IMAP. -Mantiene la conexión abierta. -Soporta MIME (lee con éxito el "mime-torture-test-mailbox"). -Soporta el envío de adjuntos. -No hay trasiego de contraseñas durante la sesión: la contraseña se envía tan sólo una vez al principio. -Puede funcionar bajo servidor seguro (SSL). -Soporte de agenda, firma y múltiples buzones en el servidor. -Todo el sistema funciona bajo un mismo usuario de UNIX. ¡No setuids!. -Soporte multilenguaje (hasta ahora traducido a inglés, español y catalán). -Ayuda completa para cada pantalla. -Interfaz estética y ergonómica.

Y, además:

-Marcado y operación con múltiples mensajes a la vez. -Posibilidad de uso del boton BACK del navegador sin pérdida de sincronismo con el servidor. -Almacenamiento automático de mensajes enviados y volcado de todo un buzón. -Reenvío de adjuntos. -Almacenamiento de borradores entre sesiones. -Es capaz de mostrar adjuntos HTML con imágenes adjuntadas "in-line", los URLs dentro de los mensajes se muestran como "links" efectivos. -Conmutación automática de servidor IMAP en función de tabla usuario-servidor. -Filtros para evitar conexiones múltiples (múltiples pulsaciones de botones) y cierre automático de conexión previa en caso de reconexión. -Tiempo de respuesta y ocupación de memoria optimizados. -Identificación dinámica de cuál es el proceso que atiende a cada usuario.

Las funciones IMAP y MIME se implementan via la libreria estándar c-client de la Universidad de Washington (escrita por Mark Crispin, el autor de la especificación IMAP). El envío de adjuntos se realiza mediante "Form-based File Upload" especificado en el rfc1867.

Postman se compone de dos elementos: un pequeño cgi-bin llamado cada vez por el servidor WWW, y un "daemon" permanente encargado de lanzar los servidores (uno por sesión de usuario) que atienden a los cgi-bin y que mantienen las conexiones con los servidores IMAP.

Postman ha sido compilado y probado con éxito en UNIX en Linux y HP-UX. No se espera que tenga problemas graves de portabilidad a otros "sabores" de UNIX. Ha funcionado con los servidores IMAP de la UW y el Cyrus.

Postman esta siendo usado en producción desde principios del año 2000 en la Universitat de València en un servidor HP-UX con 256 MB de RAM y soportando picos de hasta 90 usuarios simultáneos sin producir ninguna carga notable en el servidor. Un software anterior, que hacia uso de otra tecnología (mod_perl), agotaba los recursos del servidor con 60 o menos usuarios.

Postman se puede usar con cualquier navegador (Internet Explorer, Netscape...), incluído el lynx (navegador sólo texto).