Монитор 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 - это сценарий оболочки, который получает адрес электронной почты назначения в качестве параметра и что-то с ним делает.

Гильермо Пайет
источник
1

попробуй это

cat /var/log/maillog |grep -v "relay=local" |grep "relay=" |grep "status=sent"

Вы найдете очень полезную информацию здесь http://en.redinskala.com/postfix-maillog-interpretation/

Christoforos
источник
Почему вы используете умные цитаты? Они не будут работать.
DavidPostill
0

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

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

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

user1182988
источник