根据 postfix 的文档(如此处所述:“https://www.postfix.org/SMTPD_PROXY_README.html”),应首先使用 smtpd milter 过滤电子邮件,然后应将电子邮件提供给清理服务进行进一步处理/过滤。就我而言,我在 smtpd_milter 中使用了 opendkim,在清理中使用了 header_checks(用于记录主题)。我应该先从 opendkim 获取输出,然后获取包含主题的日志,但事实并非如此(即先记录主题,然后显示 open_dkim 输出)。以下是供参考的日志:
Dec 14 13:53:10 emg1 postfix/smtpd[27992]: 332DF20248: client=mx-se.comsol.com[176.10.169.229]:34404
Dec 14 13:53:10 emg1 postfix/cleanup[27994]: 332DF20248: warning: header Subject: Guest Webinar: Modeling Electric Machines from mx-se.comsol.com[176.10.169.229]:34404; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mx2-se.comsol.com>
Dec 14 13:53:10 emg1 postfix/cleanup[27994]: 332DF20248: message-id=<[email protected]>
Dec 14 13:53:10 emg1 opendkim[909]: 332DF20248: mx-se.comsol.com [176.10.169.229] not internal
Dec 14 13:53:10 emg1 opendkim[909]: 332DF20248: not authenticated
Dec 14 13:53:10 emg1 opendkim[909]: 332DF20248: DKIM verification successful
Dec 14 13:53:10 emg1 opendkim[909]: 332DF20248: s=comsol d=comsol.co.in a=rsa-sha256 SSL
Dec 14 13:53:10 emg1 opendmarc[858]: 332DF20248: comsol.co.in pass
Dec 14 13:53:10 emg1 postfix/qmgr[27766]: 332DF20248: from=<[email protected]>, size=3508, nrcpt=1 (queue active)
有人能指出我遗漏了什么吗?
答案1
在 Postfix 中,SMTP 服务器 (smtpd) 进程中的过滤器顺序至关重要。根据提供的日志和配置,似乎清理服务在 smtpd 过滤器之前处理消息。
为了解决这个问题,您应该确保在清理服务之前应用 smtpd 邮件过滤器。以下是排除故障和纠正顺序的几个步骤:
验证 Milter 配置:
仔细检查您的 Postfix 配置文件(通常是/etc/postfix/main.cf
)。确保smtpd_milters
正确设置了指令以应用过滤器。它应该位于其他内容过滤器之前。
检查过滤器的顺序:
在同一个配置文件中,查找content_filter
或receive_override_options
指令。确保它们不会干扰 milter 顺序。