Virtualización y Cloud Computing

Zimbra: eliminar mensajes de la cola de correo

En ocasiones nos podemos encontrar, que las colas de nuestro servidor de Zimbra estén llenas. La verdad es que es un poco tedioso tener que borrar los mensajes desde la consola de Zimbra.

Hoy os dejo un pequeño script, que nos puede facilitar la vida al borrar los mensajes de la cola:

root@zcs:~# vim /usr/local/sbin/delete_queue.sh
#!/usr/bin/perl
 
$REGEXP = shift || die “no email-adress given (regexp-style, e.g. bl.*@yahoo.com)!”;
 
@data = qx</opt/zimbra/postfix/sbin/postqueue -p>;
for (@data) {
  if (/^(w+)(*|!)?s/) {
     $queue_id = $1;
  }
  if($queue_id) {
    if (/$REGEXP/i) {
      $Q{$queue_id} = 1;
      $queue_id = “”;
    }
  }
}
 
open(POSTSUPER,”|/opt/zimbra/postfix/sbin/postsuper -d -“) || die “couldn’t open postsuper” ;
 
foreach (keys %Q) {
  print POSTSUPER “$_n”;
};
close(POSTSUPER);


Nos quedaría de la siguiente manera:

Le daremos los permisos, para que el script se pueda ejecutar:

root@zcs:~# chmod 755 /usr/local/sbin/delete_queue.sh

Y lo lanzaremos de la siguiente manera:

Lo que hace este script, es eliminar los mensajes de la cola del postfix en función del parámetro que le pasemos. Imaginemos que un usuario se ha equivocado al escribir la dirección de correo de destino y queremos borrarlo. Lo que hariamos, es lanzarlo de la siguiente manera:

root@zcs:~# /usr/local/sbin/delete_queue.sh direccion@destinio.com

No es obligatorio escribir la dirección de destino entera, lo podriamos hacer de las siguiente maneras:

root@zcs:~# /usr/local/sbin/delete_queue.sh destinio.com
root@zcs:~# /usr/local/sbin/delete_queue.sh direccion

By | 2017-02-13T17:52:15+00:00 31-03-2014|Zimbra|