Postfix: Script para vaciar automaticamente la cola de correo

0 Comments

Si tienes un tu red un usuario con su PC infectada puede iniciar una campaña de spam desde tu red interna. Claro que tu servidor de correo tienen un filtro antispam, pero igual todos los miles de correos entraran a la cola de Postfix para ser inspeccionados. O simplemente tienes alertas de correo configuradas en tus servidores y una alera se dispara y envia cientos de correos que se van acumulando y hacen que la entrega de correo de tu empresa colapse.

Como limpiamos el mail queue de postfix

En mi caso, fue una alerta de procesos de gestiones que saturo la cola de correo, para desplegar y podes inspeccionar la cola de Postfix ejecutamos:

:~# postqueue -p

O,

:~# mailq

Para limpiar toda la cola (no recomendable):

:~# postsuper -d ALL

Ahora bien, necesitamos eliminar los correos de una cuenta en especifico de la cola, para esto podemos utilizar el siguiente script:

El script a continuacion esta hecho en perl y borrara todo los correos del mailq que coincida con la expresion regular especificada como  parametro al comando, como en el siguiente ejemplo:

:~# ./postfix-queue-delete.pl [email protected]

Script postfix-queue-delete.pl

#!/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);

Hago la aclaracion que este script no lo escribi yo, me lo enviaron para ayudarme y yo se los comparto.

One Reply to “Postfix: Script para vaciar automaticamente la cola de correo”

  1. Para que el script funcione correctamente hay que completar la línea 2 de la siguiente manera

    @data = qx(mailq);

Deja tus preguntas o comentarios