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