Hay muchos paquetes que pueden suministrar servicios de correo en Linux. Básicamente los modelos de correo electrónico de Unix/Linux incluyen MTA (mail transport agents - gestores de transporte de correo), MSA (mail storage/access agents - gestores de almacenamiento/acceso de correo) y MUAs (mail users agents - gestores de usuarios de correo). Hay además una variedad de utilidades que realmente no se ajustan a ninguna de estas categorías.
Bajo Linux hay varios MTAs incluyendo sendmail, el más común en todas las formas de UNIX; y el qmail de D.J. Bernstein y Postfix de Wietse Venema. Estos reciben y transmiten correo. Esto suena bastante simple, pero en la práctica puede ser bastante complejo. Hay un número de opciones de routing (encaminamiento) y masquerading que pueden ser determinadas por la política administrativa - y esa cantidad de lenguajes de programación que filtran y modifican los encabezados de cada mensaje como si este hubiera sido transmitido. Además el proceso de routing (encaminar) el correo y encontrar el buzón de correo del usuario (almacenes de correo) puede involucrar arbitrariamente complejas interacciones con varios servicios de directorios (DNS, archivos passwd , NIS, LDAP, archivos alias/dbm, y todas las formas habituales en bases de datos).
En la actualidad los MTAs deben implementar también características anti-spam que tienen importancia en las listas de control de acceso y reglas acerca de los formatos de direcciones (encabezados de y para) que son permitidos para dominios específicos y rangos de direcciones. (Esto generalmente incluye búsquedas en tablas o servicios de directorios, incluyendo algunos como el RBL de Paul Vixie (lista blackhole en tiempo real: o MAPS, sistema de prevención de abuso de correo) y de la misma índole como Dorkslayer/ORBS. Recientemente, los MTAs han ido incrementando sus requerimientos para hacer cumplir otras políticas e implementar características antivirus y antigusanos.
En la mayoría de casos son suficientemente sencillos de instalar y configurar. Sin embargo, todo este poder y flexibilidad tienen un precio. Si su organización escoge hacerse su MTA a medida para encontrar sus requerimientos especiales de routing, nomenclatura, seguridad y anti-spam requerirá opciones de configuración más sofisticadas y algunas de ellas comportarán complejas relaciones entre su MTA y varios subsistemas (como algún servidor LDAP y DNS que utilice).
Una vez haya seleccionado, instalado y configurado un MTA usted necesitará realizar el mismo proceso para un MSA. Muchas organizaciones hoy en día no entregan correo directamente a los escritorios de los usuarios de los sistemas. Almacenan el correo en servidores y los usuarios buscan su correo mediante POP o IMAP. Hay varios protocolos para gestionar el almacén de correo pero los dos únicos que cuentan realmente hoy en día son POP3 y IMAP4 (hay también versiones antiguas de cada uno de estos protocolos, por supuesto). Como con los MTA hay un número de programas (demonios) que pueden proveer cada uno de estos servicios. La mayoría de MSAs pueden trabajar con los más comunes MTA. Ademas, estos sistemas a menudo bloquean y/o usan otros mecanismos por lo que pueden concurrir múltiples MSAs en uso sin producirse conflictos.
Esto significa que usted puede tener algunos usuarios que acceden a su correo mediante POP, mientras que otros usan IMAP y otros pueden acceder al sistema y usar un MUA local (como pine, mutt, o elm). Los usuarios individuales pueden escoger entre uno u otro método de acceso al correo, usualmente sin requerir ninguna intervención del sysadmin. Los usuarios ingeniosos pueden a menudo desviar las herramientas normales MSA/MUA y usar comandos UNIX (como cp, y mv) y FTP o rsync para cambiar de lugar su correo. (Esto generalmente es demasiado ruidoso para su uso habitual, pero puede ser bastante conveniente para reparar buzones de correo corrompidos, etc).
La primera vez que fui requerido para establecer un servidor POP en un servidor de propósito general Linux existente, me sorprendió encontrar que no había requerido trabajo. Un demonio POP había sido instalado y habilitado cuando hice la instalación inicial del sistema operativo; tuve que desactivarlo (comentando la línea en el fichero /etc/inetd.conf) durante mi rutina de sistema. Así, configurar el servicio simplemente requería que yo quitara el comentario en una línea de un fichero, y restableciera un servicio/demonio.
IMAP es similar. Mientras que POP generalmente transfiere correo al sistema cliente y lo borra del servidor, IMAP permite almacenar el correo en una carpeta en el servidor, y las copias en el sistema cliente son esencialmente una "copia de trabajo" en caché - esto usualmente cuesta más espacio de almacenamiento en el servidor, pero permite que los equipos de IT fijen su atención en los backup/recuperaciones en el servidor y permitan a los sistemas cliente estar más o menos disponibles. IMAP puede usarse igual que POP (donde los correos son borrados del servidor por los clientes después de la entrega). En cuanto al funcionamiento, no hay muchas más diferencias. Los dos servicios se inician normalmente por inetd (el servicio expendedor de redes; el recepcionista de Linux si lo prefiere)
Un servidor POP o IMAP puede correr durante años, sirviendo cientos, incluso miles de buzones de correo y usuarios sin requerir ninguna atención especial. A veces hay usuarios o sus correspondientes cuentas de correo que pueden hacer algo estúpido, o ejecutar algún software que provocará algún error que requerirá que el administrador del sistema tenga que arreglar algún desperfecto o limpiarlo.
Por ejemplo, una vez tuve a alguien quejándose de que su correo POP se había roto. Encontré que uno de sus clientes le había enviado un pequeño correo ¡con 100 Mb en un archivo adjunto! (Era una copia residual de una imagen de Netware). Esto había chocado con la capacidad de disco y los límites de velocidad/capacidad del viejo 486 de 32 Mb que estaba siendo utilizado como servidor de correo por él y las otras 50 personas del departamento. Lo solucioné en unos pocos minutos con algunos comandos, usando algunas herramientas en la línea de comando para uudecode el fichero adjunto en un archivo que puse en el directorio del usuario. Lancé un script rápido para extraer el resto de su correo y construir un nuevo buzón de correo para él. (los archivos mbox bajo UNIX son simples archivos de texto. Los almacenes de correos en qmail son directorios con pequeños archivos de texto individuales, uno para cada mensaje). Cualquier administrador de sistemas medianamente competente podría haber hecho lo mismo.
Así la mayor parte de los problemas que pueda encontrar con MSAs y MTAs pueden solucionarse con editores de texto y utilidades y filtros comunes de UNIX.
Hay muchos MUAs que podrán trabajar con servidores POP e IMAP, incluyendo Microsoft Outlook. Bajo Linux mucha gente utiliza 'fetchmail' para recoger su correo de una cola de correo local (buzón de correo). Entonces utilizan algún MUA (elm, pine, mutt, MH/exmh, EMACS rmail, vmail, mh-e, gnus, y los excesivos GUIs como Balsa, Mahogany, etc). Muchos otros usuarios escogen el cliente de correo integrado de Netscape Communicator.
Bajo Linux y UNIX hay otras herramientas como procmail, vacation, biff, y fetchmail que, como dije anteriormente, no entran en ninguna de las tres categorías clásicas (MTA, MSA, MUA) que describí.
Procmail se utiliza usualmente como "gestor de entrega local" y como un gestor de tratamiento de correo. Se utiliza generalmente para filtrar un mensaje a su recipiente final en la última parte del reparto. Esto permite a un usuario escribir scripts para automáticamente archivar, rechazar, responder, enviar u otros trabajos con sólo seleccionar partes de correo que haya recibido. (Puede también ser utilizado para proceso de envío de buzones y para programación de lenguajes/librerías de correo más generales)
(vacation es un antiguo programa que puede utilizarse simplemente para suministrar respuestas automáticas a los correos bajo un recipiente. Originariamente se utilizaba para advertir que el recipiente estaba "de vacaciones". Esto se puede hacer también con una simple receta de dos líneas en procmail).
Biff es una utilidad que notifica al usuario que un correo ha llegado. (Hay varias utilidades similares para hacer esto en GUIs, desplegando iconos, animaciones, emitiendo anuncios musicales o vocales, transmitiendo notificaciones de recibido a la red y usando varios protocolos backend MSA, etc).