Cuando Exim no puede enviar un correo (entrante o saliente) por alguna razón (por ejemplo, no puede contactar al servidor de correo del destinatario, o el dominio no existe), éste queda en la cola de mensajes del servidor. En artículos anteriores expliqué cómo listar la cola de mensajes de Exim y cómo borrar mensajes, sin embargo Exim no posee una opción o subcomando para vaciar completamente la cola de mensajes pendientes. Por ello, en este artículo explico cómo.
Al listar la cola de mensajes de Exim en un servidor Debian, descubrí mensajes sin enviar con más de dos años de antigüedad:
root@debian7# exim -bp 793d 1.7K 1X4ZPE-0007Xf-Kj <> no-reply@linuxito.com 782d 659 1X8STv-00057x-S7 <no-reply@linuxito.com> administracion@saraza.org 782d 1.7K 1X8STw-00058t-0o <> no-reply@linuxito.com 782d 655 1X8STw-0005Co-LA <no-reply@linuxito.com> juanperez@gmail.net 782d 1.6K 1X8STw-0005DH-O8 <> no-reply@linuxito.com 782d 1.6K 1X8STw-0005DJ-OI <> no-reply@linuxito.com 782d 657 1X8STw-0005DY-Pj <no-reply@linuxito.com> supervisor@fulanocorp.com.ar 782d 1.5K 1X8STw-0005E9-Vj <> no-reply@linuxito.com 782d 1.6K 1X8STw-0005EB-Vw <> no-reply@linuxito.com 782d 633 1X8STx-0005Eo-6A <no-reply@linuxito.com> luis@pepe.biz 782d 651 1X8STx-0005F6-7n <no-reply@linuxito.com> mengana@consultorapedorra.tar.gz 782d 1.9K 1X8STx-0005G4-F1 <> no-reply@linuxito.com 782d 1.6K 1X8STx-0005GN-Gt <> no-reply@linuxito.com 782d 641 1X8STy-0005Kp-Cu <no-reply@linuxito.com> rrhh@grupoteresito.con 782d 1.7K 1X8STy-0005Lq-J2 <> no-reply@linuxito.com 782d 1.7K 1X8STy-0005MA-MP <> no-reply@linuxito.com 782d 1.7K 1X8STy-0005NE-ST <> no-reply@linuxito.com 782d 1.3K 1X8STz-0005O3-3F <> no-reply@linuxito.com 782d 651 1X8STz-0005OF-4s <no-reply@linuxito.com> administracion@sociedadanonima.sa 782d 655 1X8STz-0005PG-CM <no-reply@linuxito.com> administracion@rompepepe.ing 782d 641 1X8STz-0005Pw-HE <no-reply@linuxito.com> papa@elvaticano.bible [...]
En este caso en particular se trataba de mensajes salientes que no pudieron ser enviados, y mensajes rebotados. Por lo que simplemente necesitaba eliminarlos.
En general, se debe revisar cuidadosamente la cola para determinar qué tipo de mensajes posee (entrantes o salientes) y por qué razón se encuentran encolados. No es una buena práctica vaciar completamente la cola de Exim sin conocer exactamente la naturaleza de los mensajes encolados.
Sin embargo, si se desea vaciar la cola de mensajes de Exim de todos modos, es posible utilizar el siguiente comando:
# exiqgrep -i | xargs exim -Mrm
Este comando obtiene los ID de los mensajes en cola (exiqgrep -i
), para luego borrar cada uno de ellos (exim -Mrm
). Tener en cuenta que esta acción tiene el potencial riesgo de borrar mensajes válidos en tránsito:
root@debian7# exiqgrep -i | xargs exim -Mrm Message 1X4ZPE-0007Xf-Kj has been removed Message 1X8STv-00057x-S7 has been removed Message 1X8STw-0005EB-Vw has been removed Message 1X8STw-0005DH-O8 has been removed Message 1X8STw-00058t-0o has been removed Message 1X8STw-0005DJ-OI has been removed Message 1X8STw-0005DY-Pj has been removed Message 1X8STw-0005Co-LA has been removed Message 1X8STw-0005E9-Vj has been removed Message 1X8STx-0005F6-7n has been removed Message 1X8STx-0005G4-F1 has been removed Message 1X8STx-0005GN-Gt has been removed Message 1X8STx-0005Eo-6A has been removed Message 1X8STy-0005Lq-J2 has been removed Message 1X8STy-0005Kp-Cu has been removed Message 1X8STy-0005NE-ST has been removed Message 1X8STy-0005MA-MP has been removed Message 1X8STz-0005O3-3F has been removed Message 1X8STz-0005Rn-QM has been removed Message 1X8STz-0005PG-CM has been removed Message 1X8STz-0005Pw-HE has been removed [...]
Para más información acerca de Exim, comparto este excelente artículo al respecto: Exim Cheatsheet.
Referencias
man exim man exiqgrep man exigrep man exiqsumm