我有一个运行Postfix和Dovecot的邮件服务器(CentOS 6.5)
Postfix正在监听入站邮件的25端口和出站邮件的587端口
问题是与PDF附件的出站邮件被阻止,我只想入站邮件与pdf附件被阻止。
我在main.cf中有这个configuration行
mime_header_checks = regexp:/etc/postfix/blocked_attachments
blocked_attachments文件包含:
/name=[^>]*\.(pdf|zip)/ REJECT
因此,正确的PDF附件收到的邮件被阻止,但是当我编写一封电子邮件与PDF也是封锁时,我尝试发送。
我怎么能告诉后缀,我只想传入的附件过滤? 还是我错过了什么?
我会重写你的问题成为:
我怎样才能使用不同的_header_checks smtpd(端口25)和提交(端口587)?
这个标准问题可以分为几个条件
对于这个例子,我假设你想closuresheader_checks提交(外发电子邮件) 。
解决scheme1:receive_override_options方法
您可以使用名为receive_override_options的 postfix参数。 使用参数可以覆盖全局的header_check开关,所以filter不会运行。 #main.cf header_checks = pcre:/ path / to / header_checks
#master.cf submission inet n - n - - smtpd -o receive_override_options=no_header_body_checks
注意事项:这会closuresman 5 header_checks中定义的ALL_header_checks和body_checks。 对于完成的控制,将closures哪个参数,请参阅解决scheme2。
解决scheme2:多个清理服务方法
我们可以为您的问题提供多种清理服务技术 ,因为*_header_checks是由清理服务执行的。 你可以在amavisd-new tutorial中看到这个设置的例子。
这个configuration的神奇参数是cleanup_service_name 。 有了这个参数,我们可以为每个smtpd进程使用不同的清理服务。 首先我们在master.cf中定义一个额外的清理服务(称为no-headerchecks)
no-headerchecks unix n - n - 0 cleanup -o mime_header_checks=
在这个清理中,我们定义了空的mime_header_checks来禁止过滤。 最后一步是告诉提交服务使用我们的no-headerchecks
submission inet n - n - - smtpd -o cleanup_service_name=no-headerchecks
对于这个问题,你可以使用上面描述的多个清理服务方法。
首先我们在master.cf中定义一个额外的清理服务(称为second-headerchecks)
second-headerchecks unix n - n - 0 cleanup -o mime_header_checks=pcre:/path/to/2ndheaderchecks
在这个清理中,我们定义了第二个mime_header_checks到其他PCRE表。 最后一步是告诉提交服务使用我们的第二个headerchecks
submission inet n - n - - smtpd -o cleanup_service_name=second-headerchecks
注意:
你的情况看起来与这个问题类似。 不幸的是,如果你想为使用smtp作为传输的外发邮件启用header_checks, Laurentiu Roescu的答案才有效。 好消息是他关于cleanup守护进程的第一句话给了我们一些第二种解决scheme的想法。
如果您需要在man 5 header_checks定义不同的header_checks,body_checks和其他参数,则可以应用多个清理服务方法。