Exim divide el env�o de correo en tres tareas diferentes: el encaminado, el direccionamiento y el transporte. Hay un n�mero de m�dulos de c�digo para para cada tarea, siendo cada uno configurable por separado. En el fichero de configuraci�n normalmente se instalan un n�mero de diferentes encaminadores, direccionadores y transportes.
Los encaminadores resuelven direcciones remotas, determinando a qu� anfitri�n deber�a enviarse un mensaje y qu� transporte deber�a usarse. En los anfitriones conectados a Internet a menudo hay un solo encaminador, que lleva a cabo la resoluci�n buscando el dominio en el DNS. De forma alternativa, puede haber un encaminador que se encargue de las direcciones destinadas a los anfitriones de una LAN local, y un segundo para enviar cualquier otra direcci�n a un anfitri�n inteligente ; por ejemplo, el servidor de correo de un PSI.
Las direcciones locales se env�an a los direccionadores, de los que suele haber una gran cantidad, que se encargan de la gesti�n de los "alias" y de los reenv�os as� como de la identificaci�n de los buzones locales. Las listas de correo pueden gestionarse mediante direccionadores de "aliasing" o de reenv�o. Si una direcci�n se renombra o se reenv�a, cada direcci�n generada la gestionan los encaminadores o los direccionadores, seg�n sea necesario, de manera independiente. El caso m�s com�n, de lejos, ser� el env�o a un buz�n, pero los mensajes tambi�n pueden enviarse a una orden o adjuntarse a un fichero diferente al buz�n predeterminado.
Un transporte es responsable de implementar un m�todo de env�o; por ejemplo, enviar el mensaje mediante una conexi�n SMTP o a�adirlo a un buz�n espec�fico. Los encaminadores y los direccionadores eligen qu� transporte usar para cada direcci�n receptoras. Si un transporte falla, Exim genera un mensaje de rebote o pospone el env�o para intentar realizarlo m�s tarde.
Con Exim goza de una gran libertad para configurar estas tareas. Hay disponibles controladores para cada una de ellas, entre los que puede escoger aquellos que necesite. S�lo tiene que describ�rselos a Exim en diferentes secciones de su fichero de configuraci�n. Primero se definen los transportes, seguidos de los direccionadores y despu�s los encaminadores. No hay nada integrado de manera predeterminada, aunque Exim se distribuye con un fichero de configuraci�n predeterminada que cubre casos sencillos. Si quiere cambiar la pol�tica de encaminado de Exim o modificar un transporte, lo m�s sencillo ser� partir del fichero de configuraci�n predeterminada para realizar los cambios en vez de intentar crear una configuraci�n completa desde cero.
Cuando se da una direcci�n de env�o, Exim comprueba primero si el dominio es uno de los que se maneja en el anfitri�n con una lista en la opci�n de configuraci�n local_domains. Si no se ha configurado esta opci�n, se usa el nombre del anfitri�n local como el �nico dominio local. Si el dominio es local, la direcci�n la manejan los direccionadores. De otro modo, se pasa a los encaminadores para que averig�en a qu� anfitri�n reenviar el mensaje.[1]
De manera m�s com�n, una direcci�n local es simplemente el nombre de "login" de un usuario, en cuyo caso el mensaje se env�a al buz�n del usuario, /var/spool/mail/nombre-de-usuario. Otros casos incluyen los alias, los nombres de listas de correo y los reenv�os del usuario. En estos casos, la direcci�n local se expande en una nueva lista de direcciones que pueden ser a su vez locales o remotas.
Aparte de estas direcciones “normales”, Exim puede manejar otro tipo de destinos para los mensajes locales, como nombres de ficheros y �rdenes de "pipe". Cuando se env�a a un fichero, Exim adjunta el mensaje creando ese fichero si es necesario. Los destinos de fichero y "pipe" no son direcciones propiamente dichas por lo que no puede enviar correo a, pongamos por caso, /etc/[email protected] y esperar que se sobreescriba el fichero de las contrase�as; los env�os a un fichero espec�fico s�lo son v�lidos si vienen de fichero de reenv�o o de alias. Tenga en cuenta, no obstante, que /etc/[email protected] es una direcci�n de correo sint�cticamente v�lida, pero si Exim la recibe buscar�a (t�picamente) un usuario cuyo "login" fuese /etc/passwd, y al no encontrar ninguno el mensaje rebotar�a.
En una lista de alias o en un fichero de reenv�o, un nombre de fichero es cualquier cosa que comience con una barra (/ )y que no pueda entenderse como una direcci�n de correo plenamente cualificada. Por ejemplo, /tmp/junk en un fichero de reenv�o o de alias es interpreta como un nombre de fichero, pero /tmp/[email protected] es una direcci�n de correo, aunque no parece muy �til. De todas maneras, pueden verse direcciones v�lidas de este tipo cuando se env�a correo por medio de pasarelas X.400 porque las direcciones X.400 comienzan con una barra.
De manera similar, una orden de "pipe" puede ser una orden de Unix precedida por el s�mbolo (|), a menos que esta cadena pueda entenderse como una direcci�n de correo con dominio v�lida. A menos que haya cambiado la configuraci�n, Exim no usa consola alguna para ejecutar la orden; sino que la divide en un nombre de orden y en sus variables y las ejecuta directamente. El mensaje se emplea como entrada est�ndar para esa orden.
Por ejemplo, para conducir una lista de correo a un grupo de noticias local, puede usar un gui�n de shell de nombre gateit, e instalar un alias local que env�e todos los mensajes de esta lista al gui�n usando |gateit. Si la l�nea de �rdenes contiene una coma, ella y el s�mbolo de "pipe" precedente deben entrecomillarse.
Una direcci�n local denota com�nmente un buz�n de usuario. �ste normalmente se encuentra en /var/spool/mail y tiene el nombre del usuario, quien tambi�n es el propietario del fichero. Si no existe, Exim lo crea.
En algunas configuraciones, el grupo se cambia al grupo del usuario y el modo es 0600. En estos casos, los procesos de env�o se ejecutan como un usuario, y el usuario puede borrar el buz�n completamente. En otras configuraciones, el grupo del buz�n es mail, y tiene el modo 660; los procesos de env�o se ejecutan bajo un uid y un grupo del sistema mail, y los usuarios no pueden borrar sus buzones, aunque s� pueden vaciarlos.
Tenga en cuenta que aunque /var/spool/mail es habitualmente el lugar est�ndar en el que colocar los ficheros de los buzones, algunos programas de correo pueden compilarse para usar rutas diferentes, por ejemplo, /usr/spool/mail. Si el env�o a los usuarios de su anfitri�n falla de manera consistente, deber�a ver si le sirve de algo crear un enlace simb�lico a /var/spool/mail.
Las direcciones MAILER-DAEMON y postmaster deber�an aparecer normalmente en su fichero de alias, expandi�ndose en la direcci�n de correo del administrador del sistema. MAILER-DAEMON lo usa Exim como direcci�n del remitente en los mensajes de rebote. Tambi�n se recomienda que root se instale como un alias para el administrador, especialmente cuando los env�os se ejecutan bajo permisos de los usuarios receptores para evitar que no se ejecute ning�n env�o como root.
Los usuarios pueden redirigir su correo a direcciones alternativas creando un fichero .forward en sus directorios home. �ste contiene una lista de receptores separados por comas y/o nuevas l�neas. Se leen e interpetan todas las l�neas del fichero. Puede usarse cualquier tipo de direcci�n. Un ejemplo pr�ctico de un fichero .forward para las vacaciones podr�a ser:
janet, "|vacation" |
La primera direcci�n del fichero .forward env�a el mensaje entrante al buz�n de janet, mientras que la orden vacation devuelve una breve notificaci�n al remitente. [3]
Adem�s de soportar ficheros de reenv�o “tradicionales”, Exim puede configurarse para que soporte ficheros m�s complejos conocidos como filtros. En vez de ser simplemente una lista con direcciones de reenv�o, un fichero de filtro puede contener pruebas sobre el contenido de los mensajes entrantes de manera que, por ejemplo, pueda hacerse que se reenv�en �nicamente aquellos mensajes cuyo t�tulo contenga la palabra “urgente.” Los administradores de sistemas deben decidir si permitir�n o no esta flexibilidad a los usuarios.
Exim es capaz de gestionar ficheros de alias compatibles con los ficheros de alias del sendmail de Berkeley. Las entradas del fichero de alias pueden tener la siguiente forma:
alias: receptores |
receptores es una lista de direcciones separadas por comas que se sustituir�n por el alias. La lista de receptores puede continuarse en nuevas l�neas si la l�nea siguiente comienza con un espacio en blanco.
Una propiedad especial permite a Exim gestionar listas de correo que se hayan especificado separadamente en el fichero de alias: si especifica :include:nombre de fichero como un receptor, Exim lee el fichero especificado y sustituye su contenido como una lista de receptores. M�s adelante en este cap�tulo en Secci�n 19.6.4se muestra una manera alternativa de gestionar listas de correo.”
El principal fichero de alias es /etc/aliases. Si hace que cualquiera o que cualquier grupo pueda modificar este fichero, Exim rechazar� usarlo y pospondr� los env�os locales. Puede controlar la prueba que realiza con los permisos del fichero poniendo modemask en el direccionador system_aliases.
Esto es un fichero aliases de ejemplo:
# vbrew.com fichero /etc/aliases hostmaster: janet postmaster: janet usenet: phil # La lista de correo de desarrollo. development: joe, sue, mark, biff, /var/mail/log/development owner-development: joe # Los anuncios de inter�s general se env�an a todo # el equipo announce: :include: /etc/Exim/staff, /var/mail/log/announce owner-announce: root # la lista de correo ppp se traslada a un grupo local de noticias ppp-list: "|/usr/local/bin/gateit local.lists.ppp" |
Cuando hay nombres de ficheros y �rdenes por "pipe" en un fichero de alias, como aqu�, Exim necesita que le digan bajo qu� usuario ha de ejecutar los env�os. La opci�n user (y posiblemente group, tambi�n debe proporcionarse en el fichero de configuraci�n de Exim, ya sea en el direccionador que maneja los alias o en los transportes a los que dirige estos elementos.
Si ocurre un error al enviarse a una direcci�n generada a partir del fichero aliases, Exim enviar� un mensaje de rebote al remitente del mensaje, como es habitual, pero esto quiz� no resulte apropiado. Puede usar la opci�n errors_to para especificar que los mensajes de rebote se env�en a otro usuario: por ejemplo, al administrador del correo.
En vez de con el fichero aliases, las listas de correo tambi�n pueden gestionarse mediante un direccionador forwardfile. Las listas se mantienen en un �nico directorio como /etc/exim/lists/, y un fichero lists/nag-bugs describe una lista de correo llamada nag-bugs. Esto deber�a contener las direcciones de los miembros separadas por comas o por nuevas l�neas. Las l�neas que comienzan con una almohadilla (#) se tratan como comentarios. Un sencillo direccionador para usar esos datos ser�a como sigue:
lists: driver = forwardfile file = /etc/exim/lists/${local_part} no_check_local_user errors_to = ${local_part}-request |
Para cada lista de correo, deber�a existir un usuario (o un alias o una lista de correo) llamado listname-request; se informa a esta direcci�n de cualquier error al resolver una direcci�n o al enviar un mensaje a un miembro de la lista.
[1] | Esto es una simplificaci�n. Los direccionadores son capaces de pasar direcciones a los transportes para que las env�en a anfitriones remotos, y de manera similar, los encaminadores son capaces de pasar direcciones a los transportes locales para que escriban el mensaje en un fichero o en un "pipe". Los encaminadores tambi�n pueden pasar direcciones a los direccionadores en algunas circunstancias. |
[2] | Un direccionador se salta si la direcci�n que se va a procesar es una que ya haya procesado previamente durante la generaci�n de la direcci�n actual. |
[3] | Por favor, si elige usar un programa para sus ausencias, �aseg�rese de que no responde a los mensaje enviados desde listas de correo! Resulta muy molesto descubrir que alguien se ha ido de vacaciones y encontrar un mensaje de ausencia por cada mensaje que hayan recibido. Para los administradores de listas de correo: esto es un buen ejemplo de por qu� es una mala pr�ctica forzar el campo Responder a: de los mensajes de una lista de correo para que contenga la direcci�n de env�o a esa misma lista de correo. |