Überwachen Sie die Postfix-Postausgangszustellung


11

Ich verwende GNU Mailman mit Postfix, um eine Mailingliste auszuführen, und möchte die Zustellung ausgehender E-Mails überwachen. Überprüfen Sie daher für jede aus der Liste gesendete E-Mail, ob eine 250 (OK) -Nachricht beantwortet wurde, und wenn nicht , melde dich bei mir.

Im Moment mache ich eine schnelle und schmutzige:

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

Gibt es eine saubere Möglichkeit, die Ausgabe von smtpd zu überwachen?


1
Sicherlich muss dies eine nutzlose Verwendung von seincat ? Zumindest können Sie tungrep "smtp.*to=.*" /var/log/syslog | grep -v 250
ein CVn

Persönlich finde ich diesen Kreuzzug in den meisten Kontexten etwas pedantisch und bevorzuge das besser lesbare, modulare Format des OP
jchook

Antworten:


8

Es gibt keine Möglichkeit, die gesendeten E-Mails sauber zu überwachen. Sie können die Details nur aus dem Postfix-Maillog abrufen.

Hier ist ein Beispiel:

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

Und vermeiden Sie auch die Protokolle für dkimusw. Wenn Sie die Anzahl der Mails benötigen, leiten Sie diese am wc -lEnde weiter.


3

Wie wäre es mit:

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

./bin/received ist ein Shell-Skript, das die Ziel-E-Mail-Adresse als Parameter abruft und etwas damit macht.



0

Ich beobachte, wer E-Mails über meinen Server sendet:

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

Es zeigt, wer der authentifizierte Benutzer ist, der sendet.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.