我正在尝试将 Postfix 配置为不接受来自我自己域以外地址的出站邮件。
以下正则表达式仅成功拒绝 3 个域:
/etc/postfix/header_checks:
/(^From:.*domain\.com|^From:.*domain\.net|^From:.*domain\.co\.il)/ REJECT SEND FROM THE RIGHT DOMAINS FFS!
我想基本上扭转它并阻止除这三个之外的一切。
所以根据手册:
!/pattern/flags 结果 当模式与输入字符串不匹配时,使用对应的结果值。
但是,这只会阻止一切:
/etc/postfix/header_checks:
!/(^From:.*domain\.com|^From:.*domain\.net|^From:.*domain\.co\.il)/ REJECT SEND FROM THE RIGHT DOMAINS FFS!
问题是后缀对每个标题行使用 header_checks。所以如果有像这样的标题行
并且 postfix 会将该正则表达式应用到这一行中。结果是 postfix 会拒绝这封邮件。
解决方案是添加
if endif
您的正则表达式模式基本上,您告诉 postfix 仅将模式应用于From标头。这将防止 postfix 将正则表达式评估到另一个标题行并导致电子邮件被拒绝。
请参阅postfix 手册 以获取更多信息