Todo sistema que se precie de brindar servicio de mail está compuesto básicamente por dos subsistemas. Uno que abstrae al usuario de todos los detalles de como se transportan los mensajes, como se encuentra el destino, y las transformaciones que pueden ser necesarias para alcanzar dicho destino, además también este subsistema debe ser capaz de crear un entorno de interacción para poder visualizar viejos mensajes, reenviarlos, manejar listas y alias de usuarios, entre otras cosas. Todo esto forma parte de lo que se conoce como User Agents (U.A.). El otro subsistema tiene por objetivo rutear y administrar los mensajes, realizando las transformaciones adecuadas para llegar a la dirección correcta, se lo conoce como Message Transfer Agents (MTA) Estos subsistemas se relacionan mediante distintos protocolos que son básicamente el objetivo de nuestro proyecto, que de alguna manera son la última parte que queda por estudiar dentro del laboratorio al cual pertenecemos, ya que tanto se realizó un trabajo de grado evaluando distintos MTA’s y en otro en el cual se realizó un U.A. usando UUCP como medio de transporte.
Si bien el proyecto define funcionalmente cada una de las partes que componen un sistema de mail, pone especial énfasis en los protocolos de entrega y recepción de mensajes ya que llegaremos a la implementación de algunos de ellos, como lo son: POP, y SMTP y a la definición formal para NNTP y ESMTP ( MIME y DSN).
En el proyecto se fijaron dos objetivos primordiales, que son fundamentales para futuros desarrollos, esto es: la capacidad de extensión a otros medios de transporte, ganar independencia del medio de comunicación (por ej. tipo de línea, conexión y protocolo) y la posibilidad de incorporar nuevos servicios que le permitan al U.A. ampliar su funcionalidad. Para lograr estos objetivos, por un lado nos basamos en el poder de abstracción que nos dan los sockets como medio de comunicación entre procesos y por otro lado la gran ortogonalidad que presentan los diferentes protocolos de entrega y recepción de mensajes, sobre todo si vemos como se realizan las distintas extensiones para ir incorporando nuevas funcionalidades a los sistemas de mensajería.
El proyecto requirió el estudio y análisis de las definiciones de los diferentes protocolos, como también desarrollar una implementación de cada uno usando la funcionalidad elemental provista por los Winsocks.