Problema
Al enviar correo a un dominio concreto, Exim devuelve este error y no reintenta durante un tiempo:
all hosts for 'midominio' have been failing for a long time (and retry time not reached)
Esto suele ocurrir tras bloqueos previos (firewall, blacklist, errores DNS o filtros antispam) que dejaron un historial de fallos prolongados.
Causa
Exim mantiene una base de datos de reintentos en su spool para evitar conexiones inútiles. Si persiste el registro de fallos, el servidor omite temporalmente nuevos intentos hacia ese dominio.
Solución rápida (limpiar la caché de Exim)
Advertencia: esto restablece las bases de datos de Exim en el servidor (no los mensajes en cola). Úsalo con precaución en entornos multi‑tenant.
service exim stop
rm -fv /var/spool/exim/db/*
service exim start
Alternativa con
systemd
:systemctl stop exim rm -fv /var/spool/exim/db/* systemctl start exim
Opción conservadora (limpiar solo reintentos)
Si tu instalación dispone de la utilidad, puedes sanear únicamente los registros de reintentos:
# Elimina entradas vencidas de la DB de reintentos
exim_tidydb -t 0 /var/spool/exim/db/retry
# (Opcional) Sanea esperas de transporte SMTP remoto
exim_tidydb -t 0 /var/spool/exim/db/wait-remote_smtp
Comprobar que volvió a enviar
- Revisa el estado y la cola:
systemctl is-active exim || service exim status exim -bpc # número de mensajes en cola exim -bp | head -50 # detalles de la cola
- Observa el log principal mientras haces una prueba de envío:
tail -f /var/log/exim_mainlog
Si el destinatario vuelve a recibir correo, el problema era la caché de reintentos.
Prevención y diagnóstico rápido
- DNS/MX del destino: comprueba que el dominio resuelve y tiene registros MX válidos.
- Listas negras / reputación: si saliste de una blacklist, espera propagación y limpia reintentos.
- Firewall y puertos: verifica salida TCP 25/465/587 según tu flujo SMTP.
- Políticas del destino: algunos servidores exigen TLS o SPF/DMARC correctos; revisa los bounces.
Resumen
El error «all hosts for domain have been failing for a long time» indica que Exim está evitando nuevos intentos por un historial de fallos. Limpiar la caché (global o solo la de reintentos) restablece el envío y, tras validar DNS y conectividad, el correo debería entregarse con normalidad.