Le pedimos a Gemini, la inteligencia artificial de Google, nos explique cómo resolver problemas de Exim en linux
Explicanos detalladamente cómo resolver problemas de Exim en linuxResolver problemas en Exim puede parecer intimidante al principio porque su arquitectura es muy diferente a la de otros servidores de correo. Sin embargo, tiene una de las herramientas de registro (logs) más detalladas y potentes del ecosistema Linux. Si sabes qué buscar, Exim te dirá exactamente dónde está el fallo.
Aquí tienes la guía de "trinchera" para diagnosticar y solucionar problemas en Exim, yendo desde el rastreo básico hasta la depuración avanzada.
1. El Oráculo: Entendiendo el mainlog
A diferencia de otros servicios que envían sus errores al syslog general, Exim tiene su propio registro dedicado. Este archivo es tu punto de partida indiscutible.
Bash
# Sigue el log en tiempo real mientras haces pruebas de envío/recepción
sudo tail -f /var/log/exim4/mainlog
El "Idioma" de Exim (Símbolos clave en el log):
Para leer el log rápidamente, busca estos caracteres al lado del ID del mensaje (ej. 1rZXYZ-0001bc-AB):
<= : El mensaje fue aceptado por Exim (entrada).
=> : El mensaje fue entregado con éxito a su destino (salida).
-> : Entrega adicional (por ejemplo, al reenviar a un alias).
== : Entrega aplazada (Problema temporal, Exim lo intentará de nuevo más tarde).
: Error fatal / Rechazo (Problema permanente, el correo no saldrá ni entrará).
2. Herramientas de Diagnóstico Integradas
Antes de tocar la configuración a ciegas, puedes usar los comandos de diagnóstico de Exim para simular cómo tratará un correo sin enviarlo realmente.
A. ¿A dónde enviará Exim este correo? (Test de enrutamiento)
Si el correo no llega, pregúntale a Exim cómo está resolviendo la dirección.
Bash
sudo exim -bt usuario@dominio-destino.com
Si Exim responde que la dirección es "unrouteable", tienes un problema de configuración en tus reglas de envío o problemas de resolución DNS.
B. ¿Hay un error de sintaxis en mi configuración?
Si acabas de editar la configuración y el servicio falla, comprueba la sintaxis:
Bash
sudo exim -bV
3. Resolución de Problemas en la Cola (Queue)
Cuando los correos no salen (por ejemplo, notificaciones generadas por un sistema de tickets local que se quedan atascadas), se acumulan en la cola.
Ver qué hay atascado:
Bash
sudo mailq
# o alternativamente: sudo exim -bp
Leer el log de un correo específico atascado:
Esto te dirá por qué ese mensaje en particular no ha salido.
Bash
sudo exim -Mvl <ID-del-mensaje>
Ver el cuerpo/contenido de un correo atascado:
Útil para saber si es spam generado por un script comprometido o un correo legítimo.
Bash
sudo exim -Mvb <ID-del-mensaje>
4. Tabla de Errores Comunes y Soluciones
Si estás configurando Exim para recibir correos de internet o de aplicaciones externas y los rechaza silenciosamente, puedes simular una transacción SMTP paso a paso para ver en qué momento tus reglas de seguridad (Access Control Lists - ACL) están cortando la conexión.
Bash
# Simula una conexión SMTP desde la IP de un cliente o aplicación (ej. 192.168.1.50)
sudo exim -d -bh 192.168.1.50
(Esto te abrirá una sesión SMTP simulada en la terminal. Escribe EHLO dominio.com, luego MAIL FROM: <...>, etc. La salida será extremadamente verbosa y te dirá exactamente qué línea de tu configuración rechaza o acepta el comando).
Un consejo operativo
Si notas que el sistema está muy lento y ejecutas mailq solo para descubrir que tienes miles de correos congelados (usualmente bounces o spam), puedes limpiar la cola rápidamente con este combo:
Bash
# Eliminar todos los mensajes de la cola
sudo exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mrm " $3}' | sudo sh
Para darte el enfoque más preciso: ¿El problema que estás experimentando es con correos originados localmente que no logran salir hacia el exterior, o con correos entrantes que Exim está rechazando antes de que puedan ser leídos por servicios locales?