Exim gère son spool par des fichiers bases de données, stockés dans /var/spool/exim/db. Sont enregistrés le statut de chaque message envoyé / refusé / bloqué vers les serveurs SMTP externes et locaux, comme par exemple celui du filtre antivirus amavisd-new. En cas de plantage ou surcharge du serveur, l’antivirus peut refuser la soumission de mail. Exim en retour interrompt l’envoi des mails pour la période de retry et des messages de ce type peuvent apparaître dans les journaux  :

2009-11-03 10:19:27 1EjCDp-0045dF-BP == email@my.domain R=amavis  T=amavis defer (-53): retry time not reached for any host

Pour débloquer l’envoi, il faut nettoyer des bases de données grâce à la commande exim_tidydb, supprimant toutes les entrées obsolètes. Ainsi, pour relancer la soumission des mails :

# exim_tidydb -t 7d /var/spool/exim/ retry

Le délai de suppression est fixé à 7 jours, ce qui est suffisant. Pour afficher le contenu d’une base de données, exim_dumpdb vient en renfort :

# exim_dumpdb /var/spool/exim/ retry
03-Nov-2009 15:46:51  03-Nov-2009 16:07:20  03-Nov-2009 16:22:20
 T:cluster12.us.messagelabs.com:216.82.250.35 111 77 Connection refused
28-Oct-2009 11:06:07  29-Oct-2009 11:11:03  29-Oct-2009 17:11:03
 T:example.com:192.0.32.10 110 321 Connection timed out
03-Nov-2009 11:36:24  03-Nov-2009 22:33:54  04-Nov-2009 03:37:39
 R:v@luxe.diplo.de:<info@amcham.lu> -44 12877 SMTP error from remote mail server after RCPT TO:<v@luxe.diplo.de>: host mx1.bund.de [77.87.224.134]: 450 4.7.1 <info@amcham.lu>: Sender address rejected

Pour automatiser ce nettoyage, ces commandes peuvent être placées en exécution journalière :

# exim_tidydb -t 7d /var/spool/exim/ retry
# exim_tidydb -t 7d /var/spool/exim/ misc
# exim_tidydb -t 7d /var/spool/exim/ wait-amavis
# exim_tidydb -t 7d /var/spool/exim/ wait-remote_smtp

Les noms des fichiers doivent correspondre à votre installation, donc au contenu de /var/spool/exim/db.