Монитор Postfix доставки исходящей почты


11

Я использую GNU Mailman с Postfix для запуска списка рассылки и хотел бы контролировать доставку исходящей почты, то есть: для каждого письма, отправленного из списка, проверьте, ответили ли на сообщение 250 (ОК), и если нет , доложи мне.

На данный момент я делаю быстро и грязно:

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

Есть ли чистый способ контролировать вывод smtpd?


1
Наверняка это бесполезное использованиеcat ? По крайней мере, вы можете сделатьgrep "smtp.*to=.*" /var/log/syslog | grep -v 250
CVN

Лично я нахожу, что крестовый поход немного педантичен в большинстве контекстов и предпочитаю более читаемый, модульный формат
OP

Ответы:


8

Нет никакого способа контролировать отправленные письма в чистом виде. Вы можете получить информацию только из почтового журнала postfix.

Вот пример:

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

А также избегайте логов dkimи т. Д. Если вам нужно подсчитать количество писем, отправьте их wc -lв конце.


3

Как насчет:

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

./bin/received - это сценарий оболочки, который получает адрес электронной почты назначения в качестве параметра и что-то с ним делает.



0

Я наблюдаю, кто отправляет электронную почту через мой сервер с этим:

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

Он показывает, кто является аутентифицированным пользователем, кто отправляет.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.