Adi*_*a K 9 postfix attachment
我有一个运行 Postfix 和 Dovecot 的邮件服务器 (CentOS 6.5)
Postfix 正在侦听端口 25 的入站邮件和 587 的出站邮件
问题是带有 pdf 附件的出站邮件被阻止,而我只希望带有 pdf 附件的入站邮件被阻止。
我在 main.cf 中有这个配置行
mime_header_checks = regexp:/etc/postfix/blocked_attachments
Run Code Online (Sandbox Code Playgroud)
blocks_attachments 文件包含:
/name=[^>]*\.(pdf|zip)/ REJECT
Run Code Online (Sandbox Code Playgroud)
因此,带有 pdf 附件的传入邮件被正确阻止,但是当我用 PDF 撰写电子邮件时,当我尝试发送时也被阻止。
如何告诉 postfix 我只希望过滤传入的附件?或者我错过了什么?
我将您的问题改写为:
如何为 smtpd(端口 25)和提交(端口 587)使用不同的 _header_checks?
这个规范问题可以分为几个条件
对于示例,我假设您要关闭 header_checks 以进行提交(外发电子邮件)。
方案一:receive_override_options 方法
您可以使用名为receive_override_options 的后缀参数。使用该参数,您可以覆盖全局 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
Run Code Online (Sandbox Code Playgroud)
注意事项:这将关闭man 5 header_checks 中定义的所有 _header_checks 和 body_checks 。完成控制关闭哪个参数见方案二。
方案二:多种清理服务方式
我们可以针对您的问题采用多种清理服务技术,就像清理服务*_header_checks
所执行的那样。您可以在amavisd-new 教程中看到此设置的示例。
此配置的神奇参数是cleanup_service_name。有了这个参数,我们就可以为每个 smtpd 进程使用不同的清理服务。首先,我们在 master.cf 中定义了一个额外的清理服务(称为 no-headerchecks)
no-headerchecks unix n - n - 0 cleanup
-o mime_header_checks=
Run Code Online (Sandbox Code Playgroud)
在这次清理中,我们定义了空的 mime_header_checks 来禁用过滤。最后一步是告诉提交服务使用我们的 no-headerchecks
submission inet n - n - - smtpd
-o cleanup_service_name=no-headerchecks
Run Code Online (Sandbox Code Playgroud)
对于这个问题,您可以使用如上所述的多种清理服务方法。
首先,我们在 master.cf 中定义了一个额外的清理服务(称为 second-headerchecks)
second-headerchecks unix n - n - 0 cleanup
-o mime_header_checks=pcre:/path/to/2ndheaderchecks
Run Code Online (Sandbox Code Playgroud)
在这次清理中,我们将第二个 mime_header_checks 定义为其他 PCRE 表。最后一步是告诉提交服务使用我们的second-headerchecks
submission inet n - n - - smtpd
-o cleanup_service_name=second-headerchecks
Run Code Online (Sandbox Code Playgroud)
笔记:
您的情况与此问题相似。不幸的是,Laurentiu Roescu 的答案仅在您希望为使用 smtp 作为传输的外发邮件启用 header_checks 时才有效。好消息是他关于cleanup
daemon 的第一句话让我们对第二种解决方案有了一些想法。
如果需要不同的header_checks、body_checks等参数定义,可以应用多种清理服务方法man 5 header_checks
。