Postfix body_checks 正则表达式不起作用?

Postfix body_checks 正则表达式不起作用?

我在 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

相关内容