Solita storia: errore da principiante quale sono con Postfix, ci ho perso del tempo e pubblico la soluzione già pronta per il me del futuro o per qualsiasi altra persona si trovi nella medesima difficoltà.
Mi sono accorto che la macchina che si occupa quotidianamente della maggior parte delle operazioni programmate aveva cominciato ad avere una coda di posta elettronica da smarcare / consegnare fin troppo nutrita, generando così un bel dito medio da parte del mio server SMTP esterno dal quale faccio poi passare le comunicazioni per arrivare a destinazione alla mia casella di posta.
Dando uno sguardo rapido alla coda e prendendo a campione delle email (aprendole con il comando postcat -q $ID
dove $ID
è proprio il Queue ID della singola email) mi sono accorto che si trattava degli output interni, quelli che vengono mandati dalla macchina a sé stessa, verso l’account di root. Sono per me completamente inutili e possono essere scartati, guadagnandone in “rumore evitato” e soprattutto limite non raggiunto sulla casella che mi fa da “ponte SMTP“.
Configurazione di Postfix
La soluzione è stata semplice (una volta trovata quella buona) e si frappone tra la ricezione in pancia dell’email e l’invio verso l’indirizzo di root. Generalmente in documentazione e sul web si trovano tanti riferimenti a come bloccare le email in ingresso da determinati utenti e scartarle, un pelo “meno usato” è invece il metodo applicato alle regole di trasporto che scartano l’email direttamente all’origine.
La prima modifica va fatta sul main.cf
di Postfix:
sudo nano /etc/postfix/main.cf
Quello che ti serve è introdurre l’utilizzo delle regole di trasporto e per farlo ti basterà specificare questa stringa all’interno di quelle già contenute nel file:
transport_maps = hash:/etc/postfix/transport
Io l’ho inserita subito dopo quelle relative ad alias_maps
e alias_database
, per capirci:
alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases transport_maps = hash:/etc/postfix/transport
Salva il file di configurazione ed esci (CTRL + S
seguito da CTRL + X
da tastiera).
Crea o modifica ora il contenuto del file transport
(sudo nano /etc/postfix/transport
) e inserisci al suo interno la regola che si occuperà di scartare le email indirizzate all’utente di root della macchina locale:
# silently discard a single address root@localhost discard # silently discard an entire domain # example.net discard
Ho volutamente lasciato (commentata) la regole che permette di bloccare un intero dominio perché potrebbe sempre tornarti utile, ma in questo specifico caso (e per la mia esigenza) basta e avanza quella che scarta (discard
) le email che hanno come destinatario root@localhost
.
Salva il file e chiudilo. Ora dallo in pasto a Postfix generando il file di database:
sudo postmap hash:/etc/postfix/transport
Tecnicamente dovresti essere già pronto per (ri)partire. Riavvia il servizio di Postfix con sudo systemctl restart postfix
oppure ricarica semplicemente la configurazione con sudo postfix reload
.
Pulisci e tieni d’occhio la coda
Per dare un senso a tutto questo dovrai prima pulire la coda delle email ferme per qualsivoglia errore, lancia un sudo postsuper -d ALL
e poi – dopo qualche minuto – un mailq
per accertarti che la coda rimanga realmente vuota.
#KeepItSimple
Grazie a:
serverfault.com/a/912455/254905
L'articolo potrebbe non essere aggiornato
Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)
Pillole
Le pillole sono articoli di veloce lettura dedicati a notizie, script o qualsiasi altra cosa possa essere "divorata e messa in pratica" con poco. Uno spazio del blog riservato agli articoli "a bruciapelo"!
Se vuoi leggere le altre pillole fai clic qui.