Postfix 邮件过滤器适用于端口 25 上的传入邮件,但不适用于端口 587 上的传入邮件

Postfix 邮件过滤器适用于端口 25 上的传入邮件,但不适用于端口 587 上的传入邮件

这看起来像是一个简单的任务,但我不知道如何去做。

我已经配置了一个 postfix 邮件过滤器,根据以下规则处理通过 SMTP 端口 25 发送的每一封电子邮件:Postfix 文档中的简单过滤器示例

因此master.cf,我添加了

filter   unix  -       n       n       -       5       pipe
  flags=Rq user=mailfilter null_sender=
  argv=/opt/custom/postfix/myfilterscript.sh -f ${sender} -- ${recipient}

服务配置如下:

smtp      inet  n       -       n       -       1       postscreen  
smtpd     pass  -       -       n       -       -       smtpd 
  -o content_filter=filter:dummy
dnsblog   unix  -       -       n       -       0       dnsblog
tlsproxy  unix  -       -       n       -       0       tlsproxy
submission inet n       -       n       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
smtp      unix  -       -       n       -       -       smtp

我怀疑问题就在这里,但我不知道如何在端口 587 上启用对传入电子邮件的过滤。我不熟悉 postfix 配置,而且似乎无法在文档中找到解释。

那么我需要做哪些更改才能使 postfix 对端口 587 使用与端口 25 相同的邮件过滤器?

答案1

解决方案很简单:

submission inet n       -       n       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o content_filter=filter:dummy

但是,我很难理解 service_name 和 service_type 条目的含义。手册在我看来不是很有帮助,因为它说

服务名称以 host:port 的形式指定,表示应接受新连接的主机和端口。主机部分(和冒号)可以省略。

有了这样的解释,读者会一直想知道现有条目的含义,因为现在人们会期望这里是数字端口。虽然它提到这smtp代表收到的邮件,但细节仍然是个谜,而且文档中没有其他地方可以帮助解释这一点。

我最终怀疑smtp代表端口 25,而submission代表端口 587,所以我也-o content_filter=filter:dummy向条目中添加了该参数。看来我的假设是正确的,因为它现在可以正常工作了。submission

但仍然想知道这是在哪里定义或描述的。

相关内容