这个 SpamAssassin 规则有什么问题?

这个 SpamAssassin 规则有什么问题?
body LOCAL_SHORT_BODY /^.{2,120}$/
score LOCAL_SHORT_BODY 0.4
describe LOCAL_SHORT_BODY Short body

我将其包含在我的 local.cf 中,并给它一个低分,因为它本身并不是一个很好的垃圾邮件指标,但与我拥有的其他规则结合使用时,它效果很好。

问题是,即使是长电子邮件似乎也会触发此规则。为什么?我很确定上面的正则表达式是正确的(正文为 2-120 个字符)。

答案1

你的规则:

body LOCAL_SHORT_BODY /^.{2,120}$/
score LOCAL_SHORT_BODY 0.4
describe LOCAL_SHORT_BODY Short body

任意线邮件内容长度为 2-120 个字符。几乎所有邮件都符合此要求。

因为空格是特殊处理的,所以我也会引导您远离“正确的”正则表达式解决方案,/^.{2,120}$/s但我建议:

ifplugin Mail::SpamAssassin::Plugin::BodyEval
if can(Mail::SpamAssassin::Plugin::BodyEval::has_check_body_length)
body __LOCAL_BODY_LT_2     eval:check_body_length('2')
body __LOCAL_BODY_LT_120   eval:check_body_length('120')
meta LOCAL_SHORT_BODY      !__LOCAL_BODY_LT_2 && __LOCAL_BODY_LT_120
score LOCAL_SHORT_BODY     0.4
describe LOCAL_SHORT_BODY  Short body
endif
endif

我不记得是什么时候check_body_length()添加的,但当涉及到像 SpamAssassin 这样的东西时,你总是想要最新版本。上述条件确保如果你坚持使用旧版本,你不会破坏任何东西。

相关内容