Manipular la Cola de correos de Exim 4

0 Comments

Ultimamente he estado trabajando mas en servidores de correo basados en Exim que en Courier, por lo tanto me ha tocado que buscar documentacion y howto’s del funcionamiento y administracion de la cola del Exim 4. Y debido a todo esto aca esta mi cheat sheet del Exim 4 MTA.

Message-IDs y archivos Spool

Los identificadores de mensajes o message-IDs que utiliza Exim 4 para hacer referencia en su queue (cola) son alfa numericos y mayusculas y minusculas, y tienen la forma de: XXXXXX-YYYYYY-ZZ. La mayoria de los comandos relacionados con la cola y las bitacoras hacen uso de estos message-ids.

Cada mensaje de correo en el spool tiene tres archivos. Si estan trabajando con estos archivos a mano en lugar de utilizar el comando de Exim apropiado asegurense de tener los tres.

/var/spool/exim/msglog

Los archivos dentro de este directorio contienen la informacion de bitacora para cada mensaje y son nombrados al igual que los message-id.

/var/spool/exim/input

Estos archivos son nombrados segun el message-id, mas un sufijo denotando si son el envelope header (-H) o el message data (-D).

Estos directorios contienen subcarpetas para manejar grandes colas de correo, asi que no todo va a estar en /var/spool/exim/input o /var/spool/exim/msglog. Toda busqueda o greps tendran que ser recursivos.

Comandos Basicos

Debido a que estos comandos son administrativos y propios de Exim, deberan ser ejecutados con el usuario root.

exim -bpc : Despliega la cuenta de los mensajes en el queue.

exim -bp : Despliega un listado de los mensajes en cola (tiempo en cola, tamaño, message-id, remitente, recipiente).

exim -bp | exiqsumm : Despliega un resumen de los mensajes en cola (cuenta, volumen, viejos, nuevos, dominio y totales).

exiwhat : Despliega lo que Exim esta haciendo en ese momento.

Como Exim direcciona o rutea una direccion

root@localhost# exim -bt [email protected]
[email protected]
<-- [email protected]
router = localuser, transport = local_delivery
root@localhost# exim -bt [email protected]
[email protected]
router = localuser, transport = local_delivery
root@localhost# exim -bt [email protected]
router = lookuphost, transport = remote_smtp
host mail.remotehost.com [1.2.3.4] MX=0

exim -bh 10.0.10.157 : Ejecuta una transaccion SMTP de prueba desde la linea de comandos, como si viniera de la direccion IP dada. Esto despliega los cheks, ACLs y filtros de Exim como se van aplicando. Este mensaje no sera entregado.

exim -bP : Despliega la configuracion de Exim.

Buscando en la cola con Exiqgrep

Exim viene con un utilitario llamado exiqgrep, muy bueno para hacerle grep al queue. En lugar de estar usando una serie de comandos como exim -bp, awk, grep, cut o wc -l.

Ahora veamos una serie de banderas para encontrar cuales mensajes hacen match a nuestras busquedas.

exiqgrep -f [luser]@domain : Con -f para buscar en la cola mensajes desde un remitente.

exiqgrep -r [luser]@domain : La bandera -r nos sirve para buscar dentro de la cola un recipiente/dominio especifico.

exiqgrep -o 86400 […] : Utilizamos -o para imprimir mensajes mas antiguos que el numero de segundos especificado. En este ejemplo, mensajes anteriores a 1 dia.

Use -y to print messages that are younger than the specified number of seconds. For example, messages less than an hour old:

exiqgrep -y 3600 […] : Agregando el flag -y al comando, Exim despliega los mensajes mas recientes que el numero de segundos. En nuestro ejemplo, mensajes de menos de una hora.

Use -s to match the size of a message with a regex. For example, 700-799 bytes:

exiqgrep -s ‘^7..$’ […] : Usando -s para buscar los mensajes con un tamaño de acuerdo a la expresion regular utilizada (regex). De 700 a 799 bytes, segun nuestro ejemplo.

Con -z encontramos mensajes congelados (frozen), o -x para aquellos descongelados (unfrozen).

Tambien existen las banderas para controlar el despliege.

exiqgrep -i [ -r | -f ] … : Agregando -i despliega solo el ID de mensaje de las busquedas.

exiqgrep -c … : Con -c imprime la cuenta de los mensajes encontrandos con las busquedas anteriores.

exiqgrep -i : La bandera -i despliega el ID de mensaje de toda la cola.

One Reply to “Manipular la Cola de correos de Exim 4”

  1. Saludos,

    Existe alguna alternativa al comando exim -qff , para enviar los correos en cola rapidamente o aumentar el numero de envios simultaneos??.

    Gracias.

Deja tus preguntas o comentarios