devdev / in the loop

Visualizzare e svuotare la coda (queue) email di Postfix

Come trovare le email bloccate nella coda di uscita di Postfix? La prima azione pratica che possiamo fare è analizzare la queue insieme al mail log per capire cosa è successo. La coda di postfix è divisa in due, una per i messaggi active e l’altra per i deferred. Quest’ultima contiene i messaggi il cui invio è stato rimande e, idealmente, dovrebbe essere sempre vuota.

Utilizziamo il comando qshape  per visualizzare quante email si trovano in coda. Teniamo presente che l’invioè immediato e che non dovrebbe comparire alcuna email.

# qshape
       T  5 10 20 40 80 160 320 640 1280 1280+
TOTAL  0  0  0  0  0  0   0   0   0    0     0

Per visualizzare quanti invii sono state rimandati per un errore utilizziamo il comando qshape deferred :

# qshape deferred
       T  5 10 20 40 80 160 320 640 1280 1280+
        TOTAL  5  0  0  0  0  0   0   0   0    0     5
    gmail.com  4  0  0  0  0  0   0   0   0    0     4
   tiscali.it  1  0  0  0  0  0   0   0   0    0     1

Se visualizziamo uno o più domini significa che c’è qualche problema di invio verso quest’ultimi, e dobbiamo procedere ad un po’ di analisi per capire il perché.

Analizzare le mail in coda

Visualizzare l’intera coda di invio

Per visualizzare l’elenco completo delle email bloccate nella coda d’uscita, utilizziamo il comando mailq :

# mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
2FC8824D24    10588 Thu Sep 27 14:52:41  me@esempio.it
(connect to alt2.gmail-smtp-in.l.google.com[74.125.79.26]:25: Connection timed out)
                                         paolo@gmail.com
-- 16 Kbytes in 2 Requests.

Visto che ogni messaggio in coda ottiene un ID univoco (nell’esempio qui sopra è 2FC8824D24), possiamo utilizzarlo per leggere il messaggio, in questo modo:

postcat -qv 2FC8824D24

Forzare l’invio mail dalla coda

Volendo, possiamo forzare l’invio di un messaggio bloccato in coda utilizzando, analogamente a quanto appena visto, il comando postqueue utilizzando “i”:

# postqueue -i 2FC8824D24

Per provare ad inviare tutte le email bloccate possiamo utilizzare:

# postqueue -f

Cancellare le email in coda

In alcuni casi è necessario svuotare la coda delle mail in uscita. Possiamo farlo semplicemente in questo modo:

# postsuper -d ALL deferred

..oppure cancellare una singola email indicandone l’ID:

# postsuper -d 2FC8824D24

 

Questo articolo ti è stato utile?
Server – LETTURA 7 MINUTI Il comando du, esempi e flag
Il comando du è uno standard Linux/Unix (e Mac) che ci permette di ottenere informazioni su file e cartelle in…
Server – LETTURA 5 MINUTI rsync: come escludere file e cartelle
Rsync (Remote sync) è uno strumento molto potente per poter sincronizzare due cartelle, e per poter effettuare backup incrementali. In…
Server – LETTURA 4 MINUTI Come bloccare un IP con .htaccess
Bloccare l’accesso ad un sito può essere utile per vari motivi: bloccare script malevoli, proteggersi dagli stalker o da quegli…
Server – LETTURA 12 MINUTI Che cos’è la High Availability
In questi anni stiamo vedendo un incremento verticale delle strutture ad alta efficacia, sia in termini di performance che di…
Roba figa da
if (weekend) {
    relax();
}
la nostra newsletter, ogni tanto.