Como ya se ha dicho anteriormente, Exim es capaz de enviar los mensajes de inmediato o guardarlos en una cola para procesarlos más tarde. Todo el correo entrante se guarda en el directorioinput bajo /var/spool/exim. Cuando el encolado no se encuentra activo, se inicia un proceso de envío para cada mensaje en cuanto llega. De otro modo, se queda en la cola hasta que un proceso queue-runner lo recoge. El encolado puede ajustarse como incondicional mediante queue_only en el fichero de configuración, o puede estar condicionado por la carga del sistema minuto a minuto mediante:
queue_only_load = 4 |
Si su anfitrión no está conectado permanentemente a Internet, quizá quiera activar el encolado para direcciones remotas, permitiendo al mismo tiempo que Exim realice los envíos locales de inmediato. Puede hacer esto poniendo:
queue_remote_domains = * |
Si activa cualquier tipo de encolado tiene que asegurarse de que las colas se comprueba de manera regular, probablemente cada 10 ó 15 minutos. Aún sin opciones explícitas de encolado, las colas necesitan comprobarse por si se hubieran pospuesto mensajes a causa de fallos temporales de envío. Si ejecuta Exim como demonio tendrá que añadir la opción –q15m en la línea de órdenes para procesar la cola cada 15 minutos. También puede invocar a exim –q desde cron a estos intervalos.
Puede mostrar la cola de correo invocando a Exim con la opción –bp. De manera equivalente, puede enlazar mailq con Exim e invocar mailq :
$ mailq 2h 52K 12EwGE-0005jD-00 <sam@vbrew.com> D bob@vbrew.com harry@example.net |
Esto muestra un único mensaje desde sam@vbrew.com para dos receptores en la cola de mensajes. Se ha enviado con éxito a bob@vbrew.com pero aún no se ha enviado a harry@example.net aunque ha estado en la cola dos horas. El tamaño del mensaje es de 52K y la identificación que usa Exim para este mensaje es 12EwGE-0005jD-00. Puede averiguar por qué aún no se ha completado el envío mirando en el fichero de registro individual del mensaje, que se guarda en el directorio msglog dentro del directorio de la cola de Exim. La opción–Mvl es una manera sencilla de hacer esto:
$ exim –Mvl 12EwGE-0005jD-00 2000-01-30 17:28:13 example.net [192.168.8.2]: Connection timed out 2000-01-30 17:28:13 harry@example.net: remote_smtp transport deferred: Connection timed out |
$ exigrep 12EwGE-0005jD-00 /var/log/exim/exim_mainlog |
Puede echar un vistazo general a lo que está haciendo un Exim en ejecución mediante la orden tail sobre el fichero de registro principal. Otra manera de hacer esto es ejecutar la utilidad eximon que viene con Exim. Se trata de una aplicación que muestra una pantalla donde aparece el registro principal en tiempo real, además de mostrarle una lista con los mensajes que estén esperando ser enviados, así como unas gráficas de barras acerca de la actividad de envío.
[1] | La carga del sistema es una medida estándar en Unix de la cantidad media de procesos que están en la cola esperando ejecutarse. El uptime muestra la carga media del sistema tomada en los 1, 5 y 15 minutos previos. |