无法匹配 spamassassin 自定义正则表达式规则

问题描述

我想在我的 spamassassin 的过滤规则中匹配这个模式:

Password archivio: 666


Per conto di: 

di: 后面有一个空格,数字可以是未定义的数字。 在我的 custom.cf 中,我创建了此规则

body CUSTOM_SPAM_RULE   /Password\sarchivio:\s\d+\n\n\nPer\sconto\sdi:\s/
score CUSTOM_SPAM_RULE  99.9
describe CUSTOM_SPAM_RULE       Regola di spam custom

我已经使用在线工具检查了正则表达式并且正在运行,您可以在此处检查 https://regex101.com/r/O3BfDK/1 但我的邮件网关没有命中,如果我将规则更改为像 \test\ 这样的简单正则表达式并发送一封包含测试的正文的电子邮件,我可以清楚地看到点击率。那么,我缺少什么?

解决方法

好的,在 spamassassin 的官方文档中找到了

Rawbody 规则 Rawbody 规则允许您搜索电子邮件的正文,而无需 SA 通常执行的某些类型的预处理 在尝试身体规则之前。特别是 HTML 标签不会被剥离 并且换行符仍然存在。这允许您创建规则 搜索是垃圾邮件标志的 HTML 标记或 HTML 注释或 非垃圾邮件,或特定的换行模式。

所以正确的规则变成

rawbody CUSTOM_SPAM_RULE   /Password\sarchivio:\s\d+\n\n\nPer\sconto\sdi:\s/
score CUSTOM_SPAM_RULE  99.9
describe CUSTOM_SPAM_RULE       Regola di spam custom