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íamemorypuesto 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
-dpelado, 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.




