Depurando la configuración de exim4
Esto no pretende ser una guía exhaustiva del tema, más bien unas notas y apuntes sobre ello para ayudarme en las siguientes ocasiones.
Para ver qué hace exim nada mejor que usar el parámetro de depuración -d
con
las opciones que necesitemos. Si queremos incluirlas todas usaremos -d+all
y
si necesitamos restringir algunas prefijamos su nombre con un signo menos (como
en -d+all-acl
).
Esta es la tabla de opciones (no he traducido las que no he estudiado con más detenimiento):
Categoría | Descripción | |
---|---|---|
acl | Interpretación del control de acceso | |
auth | Identificación | |
deliver | Lógica general de despacho de correo | |
dns | Búsquedas DNS lookups (ver también la categoría resolver |
|
dnsbl | Listas negras por DNS (también conocidas como RBL) | |
exec | Parámetros para llamadas a execv() | |
expand | Expansión de textos y cadenas | |
filter | Manejo de filtros | |
hints_lookup | hints data lookups | |
host_lookup | Todos los tipos de manejos entre nombres y direcciones IP | |
ident | ident lookup | |
interface | lists of local interfaces | |
lists | Búsquedas de cosas en listas | |
load | system load checks | |
local_scan | can be used by local_scan() | |
lookup | Código de búsquedas en general incluyendo todas las búsquedas | |
memory | Gestión de memoria | |
pid | Añadir el ID del proceso (PID) a todas las líneas de depuración | |
process_info | setting info for the process log | |
queue_run | Proceso de colas | |
receive | Lógica general en la recepción de mensajes | |
resolver | Activar la depuración del buscador DNS | |
retry | Gestión de reintentos | |
rewrite | Reescritura de direcciones | |
route | Enrutado de direcciones | |
timestamp | Añadir una marca de tiempo a todas las líneas de depuración | |
tls | Lógica TLS | |
transport | Transportes de correo | |
uid | Cambios de UID/GID y búsquedas de los mismos | |
verify | Lógica de verificación de direcciones | |
all | Prácticamente todas las opciones incluyendo el parámetro -v |
Las excepciones son las siguientes:
+all
: Se excluye la categoríamemory
puesto que es la opción preferidad para enviar informes a los desarrolladores y la información es excesiva para su gusto (y el de cualquiera).+resolver
: sólo se incluye información del buscador DNS cuando se ha compilado exim con la opciónDEBUG
.- La opción predeterminada para depurar, el parámetro
-d
pelado, excluye las siguientes categorías: expand, filter, interface, load, memory, pid, resolver y timestamp.
Usando una sesión SMTP
Para simular que exim está recibiendo una conexión SMTP desde el exterior se usa el parámetro -bh
con la dirección IP que queremos simular.
# exim -bh 10.9.8.7.1234
**** SMTP testing session as if from host 10.9.8.7
**** but without any ident (RFC 1413) callback.
**** This is not for real!
>>> host in hosts_connection_nolog? no (option unset)
>>> host in host_lookup? yes (matched "*")
>>> looking up host name for 10.9.8.7
>>> IP address lookup using gethostbyaddr()
>>> IP address lookup failed: h_errno=1
LOG: no host name found for IP address 10.9.8.7
>>> host in host_reject_connection? no (option unset)
>>> host in sender_unqualified_hosts? no (option unset)
>>> host in recipient_unqualified_hosts? no (option unset)
>>> host in helo_verify_hosts? no (option unset)
>>> host in helo_try_verify_hosts? no (option unset)
>>> host in helo_accept_junk_hosts? no (option unset)
220 cimitarra ESMTP Exim 4.67 Sat, 19 May 2007 20:50:13 +0200
pudiendo añadirle el puerto entrante si lo separamos con un punto al final del todo.
Si necesitamos rápidamente una sesión SMTP y concentrarnos en el contenido tenemos la opción con el programa swaks, un excelente testeador para el correo:
# swaks --pipe "exim4 -d+all -bh 10.9.8.7.1234" -f yo@mismo.com -t tu@tambien.com
y si necesitamos que el contenido sea un mensaje de factura propia usaremos cualquiera de sus opciones para ello.