body LOCAL_SHORT_BODY /^.{2,120}$/
score LOCAL_SHORT_BODY 0.4
describe LOCAL_SHORT_BODY Short body
Я включил это в свой local.cf и дал ему низкую оценку, так как сам по себе это не лучший индикатор спама, но в сочетании с другими правилами, которые у меня есть, работает хорошо.
Проблема в том, что даже длинные электронные письма, похоже, вызывают это правило. Зачем? Я почти уверен, что мое регулярное выражение выше правильное (тело из 2-120 символов).
Ваше правило:
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, вам всегда нужна последняя версия. Вышеупомянутые условия гарантируют, что вы ничего не сломаете, если вы застряли на более старой версии.