Surveiller la distribution du courrier sortant de Postfix


11

J'utilise GNU Mailman avec Postfix pour exécuter une liste de diffusion et je souhaite surveiller la livraison du courrier sortant, c'est-à-dire: pour chaque courrier envoyé à partir de la liste, vérifiez si un message 250 (OK) a été répondu, et sinon , rapportez-moi.

Pour l'instant, je fais un rapide et sale:

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

Existe-t-il un moyen propre de surveiller la sortie de smtpd?


1
Cela doit sûrement être une utilisation inutile decat ? À tout le moins, vous pouvez le fairegrep "smtp.*to=.*" /var/log/syslog | grep -v 250
un CVn

Personnellement, je trouve cette croisade un peu pédante dans la plupart des contextes et je préfère le format modulaire plus lisible de l'OP
jchook

Réponses:


8

Il n'y a aucun moyen de contrôler les e-mails envoyés de manière propre. Vous ne pouvez que récupérer les détails du maillog de postfix.

Voici un exemple:

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

Et aussi d' éviter les journaux pour , dkimetc. Si vous avez besoin du nombre de mails puis conduit sur wc -là la fin.


3

Que diriez-vous:

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

./bin/received est un script shell qui obtient l'adresse e-mail de destination en tant que paramètre et fait quelque chose avec.



0

Je regarde qui envoie des e-mails via mon serveur avec ceci:

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

Il montre qui est l'utilisateur authentifié qui envoie.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.