Что случилось с этим правилом SpamAssassin?

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

Я включал это в свой local.cf и дал ему низкий балл, поскольку это не действительно большой индикатор спама самостоятельно, но в сочетании с другими правилами я имею, он работает хорошо.

Проблема, даже длинные электронные письма, кажется, инициировали это правило. Почему? Я вполне уверен, мой regex выше корректен (тело 2-120 символов).

0
задан 15 April 2013 в 19:26
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, вы всегда хотите последнюю версию. Вышеуказанные условия гарантируют, что вы ничего не сломаете, если застрянете на старой версии.

.
0
ответ дан 5 December 2019 в 15:24

Теги

Похожие вопросы