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?

Stéphane Caron
la source
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.

expéditeur
la source
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.

Guillermo Payet
la source
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.

user1182988
la source