Muchas veces nos encontramos con correos en la cola del postfix de los que queremos deshacernos, bien sea porque está ahí por error, por un ataque de spam o cualquier otra razón.
En este caso, os va a venir muy bien este pequeño script que os dejo aquí. Como argumento solo hay que pasarle parte del nombre del destinatario o del origen, y él solito se encarga de hacer toda la magia.
Sin mas preámbulos, este es el script:
#!/usr/bin/perl
$REGEXP = shift || die "no email-adress given (regexp-style, e.g. bl.*\@yahoo.com)!";
@data = qx</usr/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,"|postsuper -d -") || die "couldn't open postsuper" ;
foreach (keys %Q) {
print POSTSUPER "$_\n";
};
close(POSTSUPER);
Solo hay que guardarlo, darle permisos de ejecución, y ejecutarlo:
borrar_correo.pl mail@ejemplo.com
Esto elimina de la cola de correo todos aquellos emails cuyo origen o destinatario sea «mai@ejemplo.com».
Fácil y económico, ¿verdad?