弄清楚接收邮件的处理链

弄清楚接收邮件的处理链

我如何才能确定我的 sendmail 设置中的转换和过滤器的确切顺序?

我的问题是我收到了已删除帐户的邮件,并且正在对其进行垃圾邮件检查,尽管它应该在知道收件人后立即将其丢弃。

答案1

据我记得,过滤器是按照定义的顺序执行的。即InputMailFilters=milter1, milter2,配置文件中的所有规则都是按照定义的顺序执行的sendmail.cf

自从我上次配置 sendmail 以来已经过去了很长时间,对于所有非标准的东西来说,这总是一件非常麻烦的事(甚至在那时也是如此)。据我记得,sendmail 不会立即检查收件人是否存在,但如果域是本地的,则会在 SMTP 对话期间接受该消息,然后进行进一步处理,如果发现特定用户无效,则稍后发送退回邮件。这可能是您的邮件过滤器即使对于无效收件人也会被执行的原因。

虽然不太理想,但最好的办法可能是启用blacklist_recipientsIIRC,因为这是 SMTP 对话期间执行的测试,并且应该首先阻止指定无效收件人的消息被接受。Sendmail 应该在 SMTP 对话期间拒绝来自这些地址的邮件,并且不做任何进一步的处理:

 FEATURE(`blacklist_recipients')

然后你可以将条目添加到access地图 对于您域中的本地用户和/或地址,其中用户已被删除并且不再应接收邮件:

 badlocaluser@                  ERROR:550 Mailbox disabled for this username
 [email protected]        ERROR:550 Mailbox disabled for this username

这会增加一些开销,因为您既需要禁用用户帐户,又需要在访问表中将其“记录”为已删除。

相关内容