我正在运行 Debian 12、Postfix 和 Postgrey。我似乎无法让 Postgrey 记录到 mail.log。我正在使用 syslog-ng,之前使用 rsyslog。我有指向 mail.log 文件的邮件,在 /etc/default/postgrey 中,我尝试过:
POSTGREY_OPTS="--inet=127.0.0.1:10023 --greylist-action=ACTION --syslog-facility mail"
也尝试过--syslog-facility=mail
,但似乎没有什么可以强制将其转到 /var/log/mail.log 我正在尝试将其转到 mail.log,以便 Monitorix 将其绘制成图表。任何帮助都将不胜感激。
答案1
一旦你将它添加到你的 postfix main.cf 中,它就会自动记录。取决于你在 postfix 中的日志设置。
smtpd_recipient_restrictions 至
check_policy_service inet:127.0.0.1:10023
你的 /etc/default/postgre 应该像这样
POSTGREY_OPTS="--inet=127.0.0.1:10023 --delay=60"
https://faq.ip-projects.de/en-us/10-server/40-postgrey-postfix-spam-filter-on-debian-ubuntu
编辑:更新
我已经通过你的 pastebin 进行了 grep,这是邮件的配置
destination d_mail { file("/var/log/mail.log"); };
# This files are the log come from the mail subsystem.
destination d_mailinfo { file("/var/log/mail.info"); };
destination d_mailwarn { file("/var/log/mail.warn"); };
destination d_mailerr { file("/var/log/mail.err"); };
filter f_debug { level(debug) and not facility(auth, authpriv, news, mail); };
not facility(auth,authpriv,cron,daemon,mail,news); };
filter f_mail { facility(mail) and not filter(f_dbg); };
filter f_syslog3 { not facility(auth, authpriv, mail) and not filter(f_dbg); };
filter f_cother { level(debug, info, notice, warn) or facility(daemon, mail); };
log { source(s_src); filter(f_mail); destination(d_mail); };
#log { source(s_src); filter(f_mail); filter(f_info); destination(d_mailinfo); };
#log { source(s_src); filter(f_mail); filter(f_warn); destination(d_mailwarn); };
#log { source(s_src); filter(f_mail); filter(f_err); destination(d_mailerr); };
- 修改 postgrey 配置(通常位于
/etc/postgrey/postgrey.conf
)并输入
LOGFILE="/var/log/postgrey.log"
并重启postgre服务
还要检查 postgrey 正在记录哪个 syslog 设备。
- 确保
/etc/rsyslog.d/postgrey.conf
有这个if $programname == 'postgrey' then /var/log/mail.log
并重新启动 rsyslog