jueves, 18 de febrero de 2010

Borrar correos en cola Postfix

Me ha resultado muy útl el siguiente script. Ha sido la solución para borrar correos que me entraban de un servidor web comprometido. Me entraban con la dirección apache@dominio.com. con este script pasandole una dirección de correo, borra todos los correos en cola de dicha dirección.

#!/usr/bin/perl

$REGEXP = shift || die "no email-adress given (regexp-style, e.g. bl.*\@yahoo.com)!";

@data = qx;
for (@data) {
if (/^(\w+)(\*|\!)?\s/) {
  $queue_id = $1;
}
if($queue_id) {
 if (/$REGEXP/i) {
   $Q{$queue_id} = 1;
   $queue_id = "";
 }
}
}

#open(POSTSUPER,"|cat") || die "couldn't open postsuper" ;
open(POSTSUPER,"|postsuper -d -") || die "couldn't open postsuper" ;

foreach (keys %Q) {
print POSTSUPER "$_\n";
};
close(POSTSUPER);
Y si queremos ir más a piñón y borrar toda la cola...


/usr/sbin/postsuper -d ALL

2 comentarios:

  1. Línea 2 agregar

    @data = qx(mailq);


    Para que funcione correctamente

    ResponderEliminar
    Respuestas
    1. Muchas gracias P@bLo por la aportación :D

      Eliminar