我试图configurationPostfix不接受与我自己的域以外的FROM地址的出站邮件。
以下正则expression式只能成功拒绝3个域:
/etc/postfix/header_checks: /(^From:.*domain\.com|^From:.*domain\.net|^From:.*domain\.co\.il)/ REJECT SEND FROM THE RIGHT DOMAINS FFS!
我想基本上扭转它,并阻止一切,但3。
所以根据手册:
!/ pattern / flags结果当模式与inputstring不匹配时,使用相应的结果值。
但是,这只是阻止了一切:
/etc/postfix/header_checks: !/(^From:.*domain\.com|^From:.*domain\.net|^From:.*domain\.co\.il)/ REJECT SEND FROM THE RIGHT DOMAINS FFS!
问题是后缀使用header_checks 每个标题行。 所以,如果有标题行像
Subject: I love you :p
后缀将应用该正则expression式到这一行。 结果是postfix会拒绝这封电子邮件。
解决scheme是添加if endif您的正则expression式模式if endif
if /^From:/ !/(^From:.*domain\.com|^From:.*domain\.net|^From:.*domain\.co\.il)/ REJECT SEND FROM THE RIGHT DOMAINS FFS! endif
基本上,你告诉后缀只将模式应用到From头。 这将阻止后缀评估到另一个标题行的正则expression式,并导致拒绝的电子邮件。
进一步的信息见postfix手册