我在 body_checks 参数中有一个拒绝规则,其写法如下:
/(\d{3,4},\d{2} EUR)/ REJECT Body Spam Rule 934
这个正则表达式参数应该没问题,至少根据一些可以测试正则表达式的测试页面,例如这页面。因此,我根据这句话进行测试
Sie haben eine Zahlung über 156,36 EUR
但当我用包含上述句子的真实电子邮件进行测试时,该电子邮件并没有被拒绝。
Postfix 已启用标头和正文检查。其他非正则表达式规则运行良好。在将过滤器添加到 body_checks 后,我还重新加载了 postfix 服务。知道为什么吗?
答案1
看起来 postfix 不支持\d
正则表达式。将其替换为[0-9]
即可使其正常工作。
/([0-9]{3,4},[0-9]{2} EUR)/ REJECT Body Spam Rule 934
Postmap 结果
~$ postmap -bmq - regexp:/etc/postfix/myregex < sample-body
Sie haben eine Zahlung über 156,36 EUR REJECT Body Spam Rule 93156,36 EUR