Postfix: snellire la coda

Chi gestisce degli MTA ha ben presente il problema dello spam.

Tra gli effetti collaterali di questo fenomeno ci sono elle code di mail che si riempiono di messaggi inutili. Questo avviene secondo uno scenario tipico: lo spammer invia un messaggio con un mittente farlocco ad un utente che non esiste; il nostro MTA genera diligentemente un NDR e tenta di recapitarlo al presunto mittente del messaggio, ma l’MTA di destinazione rifiuta la connessione, non è raggiungibile o il recapito dà un errore temporaneo (4xx). Risultato: rimangono in coda per dei giorni dei messaggi di nessuna utilità che non fanno altro che sprecare (pochissima) banda e falsare un dato che potrebbe essere utile come sintomo di problemi (il numero dei messaggi non recapitati in coda).

Questo è un tipico esempio dello scenario descritto sopra:

$ mailq
----Queue ID----- --Size-- ---Arrival Time---- --Sender/Recipient------
3Vgspm0WfDz30Dy       3152 Mon Apr 30 06:14:56 MAILER-DAEMON
   (connect to h1784190.stratoserver.net[85.214.66.15]:25: Connection refused)
                                               root@h1784190.stratoserver.net

Si tratta, quindi, di togliere di mezzo i messaggi in coda provenienti da MAILER-DAEMON, a questo scopo basta eseguire questo comando:

mailq | grep MAILER-DAEMON | awk '{print substr($1,1,16)}' | postsuper -d -

La dimensione dell’ID è quella di Postfix >= 2.9 con enable_long_queue_ids abilitato. Viene considerato un carattere in più per fare in modo di non cancellare messaggi attivi (‘*’ dopo l’ID) o in hold (‘!’ dopo l’ID).

Autore: Luigi Rosa

Consulente IT, sviluppatore, SysAdmin, cazzaro, e, ovviamente, geek.

Spazio per un commento