基本上我想要做的是重写From:Header,使用header_checks,但只有当邮件去到某个域。
header_check的问题是,我无法检查To:和From:Headers的组合。
现在我想知道是否有可能使用header_checks结合smtpd_restriction_classes或类似的东西。
在searchnetworking时,我发现了很多关于header_checks和多个头域的信息。 他们都基本告诉我,不能把两个头部结合起来检查。 但是我没有find任何信息,如果只能做一个头部检查,如果一个条件(如邮件去example.com)得到满足。
编辑 :
在做更多的研究时,我发现下面的文章build议在postfix master.cf中添加一个Service,使用一个transportmap将Domain的邮件传递给该服务,并且使用-o定义一个单独的header_check。
事情是,我不能得到它的工作…
我到目前为止所做的是将服务添加到master.cf中:
example unix - - n - - smtpd -o header_checks=regexp:/etc/postfix/check_headers_example
将followin行添加到transportmap:
example.com example:
最后但并非最不重要我有两个正则expression式文件用于头部检查,一个用于新添加的服务,另一个用于将redirect到重写的域的答案。
check_headers_example:
/From:(.*)@mydomain.ain>(.*)/ REPLACE From:[email protected]>$2
显然,如果有人回答,邮件将转到必杀技,所以我有以下主要postfix过程中定义的check_headers:
/To:(.*)<(.*)@mydomain.example.com>(.*)/ REDIRECT [email protected]$2
不知何故运输被忽略。 任何帮助表示赞赏。
编辑2:
我仍然卡住…我做了以下尝试:
smtpd_restriction_classes = header_rewrite header_rewrite = regexp:/etc/postfix/rewrite_headers_domain smtpd_recipient_restrictions = (some checks) check_recipient_access hash:/etc/postfix/rewrite_table, (more checks)
在rewrite_table中存在以下条目:
/From:(.*)@mydomain.ain>(.*)/ REPLACE From:[email protected]>$2
所有得到的是一个NOQUEUE: reject: 451 4.3.5 Server configuration error 。 我找不到任何资源如何做,但有些人说这是不可能的。
编辑3:
我问这个问题的原因是,我们有一个客户(可以说customer.com)使用一些别名,将邮件转发到一个域,比如说example.com。
example.com上的邮件服务器不接受来自发件人@ example.com的外部服务器的任何邮件。
因此,从example.com写入[email protected]的所有邮件最终都将被拒绝。
example.com的邮件服务器上的例外是不可能的。
我们并没有真正解决这个问题,但会尝试通过使用列表(mailman)而不是别名来解决这个问题。 这虽然不是很好,也不是一个真正的解决scheme。
我会很感激所有的build议如何以适当的方式完成这一点。
我不确定你是否能够达到你想要的。 我正在testing一个类似的东西,需要每个域的关键字过滤等,并能够使用header_checks每域或我想要使用后缀的多实例function的域。
您创build一个实例,您只需更改该特定实例上的smtp端口。 您在主实例上使用transport_maps将特定域的电子邮件路由到辅助实例的smtp端口。 并做所有的header_checks那里,并closures电子邮件!
干杯!