[[!!meta title="Exim4"]] [[!!meta author="Víctor Moral victor@taquiones.net"]]
Exim4
Introducción
El autor de exim4 es Philip Hazel que además ha escrito un libro muy interesante, aunque en la actualidad no trabaja ya en el programa.
La presente página y similares sólo son unas notas agrupadas y ordenadas y no pretenden ser una guía de referencia ni nada parecido.
Conceptos
Esta es la lista de términos citados en la documentación, y su significado en el contexto de este servidor de correo.
Bounce messages
Los mensajes de rebote son, estrictamente hablando, notificaciones de estado de despacho (DSN, Delivery Status Notifications), creadas cuando una entrega falla.
En exim4
estos mensajes normalmente se envían de vuelta al emisor.
Retry
El comportamiento predeterminado de exim4
es intentar entregar los mensajes
inmediatamente a su recepción, a menos que se le indique otra cosa.
Aunque esto funciona bien en condiciones normales, existen ocasiones en las que los servidores remotos fallan debido a condiciones de carga extrema ó a operaciones de mantenimiento, y los mensajes tienen que ser almacenados durante un tiempo hasta que se produzca un reintento (retry) de despacho.
exim4
dispone de un juego de reglas que controlan la frecuencia de
reintentos de envío, aunque no son simples de calcular, puesto que dependen a
su vez de la frecuencia de proceso de las colas de mensajes. La opción
predeterminada consiste en una única regla en el archivo
/etc/exim4/conf.d/retry/30_exim4-config
.
Frozen messages
Un mensaje congelado es aquél que tiene una condición de error lo bastante seria como para justificar su permanencia en la cola de mensajes, sin más reintentos de despacho.
La descongelación de mensajes puede efectuarse manualmente ó tras un tiempo
concreto en dicho estado. En el primer caso se emplean las opciones -M
ó
-qff
con el programa exim
y en el segundo está controlado por la opción
auto_thaw
de la configuración. Tras la descongelación del mensaje se intenta
un nuevo despacho y, si se producen condiciones similares, el mensaje puede
volver a la categoría inicial.
Queues
Una cola de mensajes ó cola a secas es una colección de mensajes de correo
bajo el control de exim4
. Para el programa dicha cola es más bien un fondo
común, un depósito, sin orden ni preferencia ni separación por dominios ú
otros factores.
Cada elemento en la cola representa un mensaje de correo con uno ó varios destinatarios, y que permanecen guardados allí hasta que un proceso especial los extrae de ella para despacharlos a su destino. Y esto, siempre que dicha entrega no se haya podido realizar tras la recepción por las causas arriba comentadas.
Despacho de mensajes
El proceso de despacho de mensajes que lleva a cabo exim4
consiste en
encontrar información acerca de los destinatarios de un mensaje y en cómo
llevarlos hasta allí.
Para todo ello en el programa existen unos bloques de código -separada e independientemente configurables- llamados controladores (drivers en el argot del autor) en el sentido génerico del término. Pueden hacer cosas tan dispares como resolver direcciones IP, conectar vía SMTP con otras máquinas ó almacenar mensajes en buzones locales.
Existe tres tipos de controladores:
- enrutadores (routers): encargados de procesar direcciones de correo.
- transportes (transports): encargados de despachar mensajes, copiándolos en otros archivos, tuberías ó conexiones SMTP.
- autentificadores (smtp authenticators): encargados de las transacciones seguras (identificación, cifrado, ...) dentro del protocolo SMTP.
El procedimiento habitual consiste en determinar primero cuales son las direcciones finales destinatarias del mensaje, invocando a todos los enrutadores necesarios, para después llamar a los transportes que entregan los archivos de forma local ó remota; en este último caso es posible que necesite emplear algún tipo de autentificación.
Routers
Un enrutador se emplea para decidir qué hacer con un mensaje una vez que es aceptado previamente por el mecanismo de control de acceso (Access control list). Es decir, mediante los enrutadores se determinan las direcciones destinatarias de los mensajes.
Cada enrutador se prueba por orden de aparición en la configuración hasta que el mensaje se acepta PENDIENTE DE COMPLETAR
Exim uses routers to decide “what to do” with a message once it has been accepted by an earlier Access Control List. Routers are used to process messages and decide which deliveries are to take place. Each router is run in turn until a message is accepted for processing by a router.
Transports
Transports are used to perform the actual delivery of messages once accepted and processed by the routers before it.