Monitorare la consegna della posta in uscita Postfix


11

Sto usando GNU Mailman con Postfix per eseguire una mailing list e vorrei monitorare la consegna della posta in uscita, vale a dire: per ogni posta inviata dall'elenco, controlla se è stato risposto un messaggio 250 (OK) e, in caso contrario, , riferiscimi.

Per ora, sto facendo un veloce e sporco:

# cat /var/log/syslog | grep "smtp.*to=.*" | grep -v 250

Esiste un modo pulito per monitorare l'output di smtpd?


1
Sicuramente questo deve essere un uso inutile dicat ? Per lo meno si può faregrep "smtp.*to=.*" /var/log/syslog | grep -v 250
un CVn

Personalmente trovo che la crociata sia un po 'pedante nella maggior parte dei contesti e preferisco il formato modulare più leggibile
dell'OP

Risposte:


8

Non c'è modo di monitorare le mail inviate in modo pulito. Puoi visualizzare i dettagli solo dal maillog di postfix.

Ecco un esempio:

log='logfile of postfix'
grep "status=sent" $log | \
egrep -ve 'postfix/(cleanup|pickup|master|qmgr|smtpd|local|pipe)'

Ed evita anche i registri per dkimecc. Se hai bisogno del conteggio delle mail, esegui il pipe wc -lalla fine.


3

Che ne dite di:

multitail -eX "smtp.*to=<(.*)>.*sent.*250" './bin/received' -f /var/log/maillog

./bin/received è uno script di shell che ottiene l'indirizzo e-mail di destinazione come parametro e fa qualcosa con esso.



0

Sto guardando chi invia e-mail attraverso il mio server con questo:

tail -f /var/log/mail.log | grep 'sasl'

Mostra chi è l'utente autenticato che sta inviando.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.