No solo vamos a ver cómo eliminar todos los mensajes de la cola de exim, sino que también veremos cómo borrar solamente un mensaje.
Podemos utilizar el comando exim -bp para mostrar los emails de la cola de exim tal y como vemos en el siguiente ejemplo:
# exim -bp 1h 2K 3GpBsH-0003cb-2Q <de@ejemplo.com> para@ejemplo.com 10m 2K 4FoJwG-0001sa-6K <de@ejemplo.com> para@ejemplo.com
Ésto nos será útil para ver si los mensajes han sido eliminados y también para obtener el identificador de cada mensaje.
Contenidos
Borrando todos los mensajes de la cola de exim
Si ejecutamos el comando exiqgrep -i obtendremos todos los identificadores de los emails en la cola. Si redirigimos la salida al comando exim -Mrm, todos los mensajes serán borrados. En caso de que algún mensaje esté actualmente siendo procesado, no se eliminará, por lo que tendremos que volver a ejecutar el comando una vez que la tarea haya terminado.
# exiqgrep -i | xargs exim -Mrm
Como resultado, si el primer mensaje ha podido ser eliminado y el segundo no, obtendremos lo siguiente:
Message 3GpBsH-0003cb-2Q has been removed Message 4FoJwG-0001sa-6K is locked
En este caso, tendremos que ejecutar el comando de nuevo cuando exim haya liberado el mensaje.
Cómo borrar un solo mensaje de la cola de exim
En este caso debemos utilizar el comando exim -Mrm seguido del identificador del email que queremos eliminar. Por ejemplo:
# exim -Mrm 3GpBsH-0003cb-2Q
Si el mensaje se ha eliminado correctamente podremos ver la siguiente salida:
Message 3GpBsH-0003cb-2Q has been removed
Si exim se encuentra procesando el email que queremos eliminar no conseguiremos eliminarlo, por lo que obtendremos la siguiente salida:
Message 3GpBsH-0003cb-2Q is locked
Como hemos visto antes, tendremos que reintentar la operación cuando exim haya liberado el mensaje, aunque si ha conseguido enviarlo, el email será descartado automáticamente de la cola. Otra opción es obtener el identificador del proceso que esté ejecutando el proceso mediante el comando ps -aux y matarlo mediante el comando kill.
¿Y si en lugar de eliminar los mensajes quieres enviarlos?
En este caso tendrás que procesar la cola de exim y esperar a que el proceso termine. Ten en cuenta que solamente desaparecerán de la cola aquellos emails que se hayan podido enviar con éxito.
COMO PODRIA CREAR UN CRON QUE ELIMINE LOS CORREOS CONGELADOS PERIODICAMENTE, POR EJEMPLO CADA DIA A UNA HORA ESPECIFICA