如何仅使用Postfix阻止传入邮件的附件?


9

我有一个运行Postfix和Dovecot的邮件服务器(CentOS 6.5)

Postfix在端口25上监听入站邮件,在587上监听出站邮件

问题是,带有pdf附件的出站邮件被阻止,而我只希望阻止带有pdf附件的入站邮件。

我在main.cf中有此配置行

 mime_header_checks = regexp:/etc/postfix/blocked_attachments

blocked_attachments文件包含:

/name=[^>]*\.(pdf|zip)/ REJECT

因此,带有pdf附件的传入邮件被正确阻止了,但是当我撰写的PDF电子邮件也被阻止时,我尝试发送。

如何告诉postfix我只希望过滤传入的附件?还是我错过了什么?

Answers:


7

我将您的问题重写为:

如何为smtpd(端口25)和提交(端口587)使用不同的_header_checks?

这个规范问题可以分为几个条件

  1. 我想关闭smtpd或提交之一的header_checks。
  2. 我想为smtpd和提交运行不同的header_checks。

1.我要关闭smtpd或提交之一的header_checks。

对于该示例,我假设您要关闭header_checks以进行提交(外发电子邮件)

解决方案1:receive_override_options方法

您可以使用称为receive_override_options的 postfix参数。使用该参数,您可以覆盖全局header_check开关,因此过滤器将不会运行。#main.cf header_checks = pcre:/ path / to / header_checks

#master.cf
submission inet n       -       n       -       -       smtpd
    -o receive_override_options=no_header_body_checks

注意事项:这将关闭在man 5 header_checks中定义的所有_header_checks和body_checks 。有关要关闭哪个参数的完整控制,请参阅解决方案2。

解决方案2:多种清理服务方法

正如清理服务所执行的那样,我们可以为您的问题提供多种清理服务技术。您可以在amavisd-new教程中看到此设置的示例。*_header_checks

此配置的魔术参数是cleanup_service_name。使用此参数,我们可以为每个smtpd进程使用不同的清理服务。首先,我们在master.cf中定义一个附加的清理服务(称为no-headerchecks)

no-headerchecks unix    n       -       n       -       0       cleanup
    -o mime_header_checks=

在此清理中,我们定义了空的mime_header_checks以禁用过滤。最后一步是告诉提交服务使用我们的无标题检查

submission inet n       -       n       -       -       smtpd
    -o cleanup_service_name=no-headerchecks 

2.我想为smtpd和提交运行不同的header_checks。

对于此问题,您可以使用如上所述的多种清理服务方法。

首先,我们在master.cf中定义一个附加的清理服务(称为“第二标头检查”)

second-headerchecks unix    n       -       n       -       0       cleanup
    -o mime_header_checks=pcre:/path/to/2ndheaderchecks

在此清理中,我们为其他PCRE表定义了第二个mime_header_checks。最后一步是告诉提交服务使用我们的第二个标题检查

submission inet n       -       n       -       -       smtpd
    -o cleanup_service_name=second-headerchecks

注意:

  • 您的情况与此问题相似。不幸的是只有在您希望为使用smtp作为传输方式的传出邮件启用header_checks时,Laurentiu Roescu的答案才有效。好消息是他关于cleanup守护程序的第一句话为我们提供了第二个解决方案的思路。

  • 如果您想要不同的header_checks,body_checks和中定义的其他参数,则可以应用多种清理服务方法man 5 header_checks

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.