监控 Postfix 外发邮件传递

监控 Postfix 外发邮件传递

我正在使用 GNU Mailman 和 Postfix 来运行邮件列表,并且想要监控外发邮件的传递情况,即:对于从列表发送的每封邮件,检查是否答复了 250(OK)消息,如果没有,则向我报告。

现在,我正在做一个快速而粗糙的事情:

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

有没有一种干净的方法来监控 smtpd 的输出?

答案1

没有办法干净地监控已发送的邮件。您只能从 postfix 的邮件日志中 grep 详细信息。

以下是一个例子:

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

并且还避免日志dkim等。如果您需要邮件数量,那么请wc -l在最后进行管道传输。

答案2

怎么样:

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

./bin/received 是一个 shell 脚本,它获取目标电子邮件地址作为参数并对其执行一些操作。

答案3

尝试这个

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

你会在这里找到非常有用的信息http://en.redinskala.com/postfix-maillog-interpretation/

答案4

我正在用这个观察谁通过我的服务器发送电子邮件:

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

它显示发送者的经过身份验证的用户是谁。

相关内容