Версия для печати

Прошло несколько месяцев работы dspam-фильтров в промышленных масштабах. Серьёзных проблем не найдено, но захотелось немного изменить граничные точки для X-Junk-Score заголовка.

Было:

/* Defines the bar score ranges. By default the following ratios are used:
* digital    Bar score
* 0          []
* 1-49       [X]
* 50-70      [XX]
* 71-89      [XXX]
* 90-94      [XXXX]
* 95-99      [XXXXX]
* 100        [XXXXXX]
*/
int BARSCORERANGES[] = {0,49,70,89,94,99,100,      -1};

Стало:

/* Defines the bar score ranges. By default the following ratios are used:
* digital    Bar score
* 0          []
* 1-49       [X]
* 50-70      [XX]
* 71-89      [XXX]
* 90-94      [XXXX]
* 95-98      [XXXXX]
* 99-100     [XXXXXX]
*/
int BARSCORERANGES[] = {0,49,70,89,94,98,100,      -1};

Изменились два последних диапазона. Это позволяет отделить максимальную вероятность 99 в отдельную группу. И применять к ней более суровые фильтры.

Я соответственно изменил, выложенные на сайте cgp- и zmailer- фильтры. Это единственное изменение в новых версиях.

Комментарии (6) на запись “Не большое изменение DSPAM плагинов для CGP и ZMailer”

  1. mcwees пишет:

    Приветсвую.

    Очень полезная информация, спасибо.

    Есть, правда, несколько моментов:

    — патч dspam_addheader.patch не ставится на dspam-3.10.1. Я это поправил, если надо могу выложить новую версию.

    — не понял, как его «учить», может поделитесь?

  2. kocmuk.ru пишет:

    Добрый вечер.

    1. Да, выкладывайте, у вас есть куда? Если да — шлите ссылку. Но я пока не ставил dspam-3.10.1 в продакшин, у меня с ним были проблемы. dspam-3.10.1 переставал работать в каких-то ситуациях. Я пока не смотрел внимательно почему и сижу пока на какой-то версии из git, где всё работает.

    2. Пока могу рассказать только общее: учу скриптом на python. Заводится два спец. ящика: spam@ и ham@ типа MailDir и ошибки пересылаются или перекладываются по IMAP в соответствующий ящик. Из крона скрипт вычитывает содержимое ящиков и отправляет в dspam на переобучение.

    Переобучение выглядит так:

    Spam: cat spam.msg | dspam --user юзер --class=spam --source=corpus --mode=toe --client --deliver=summary --stdout

    Ham: cat ham.msg | dspam --user юзер --class=innocent --source=corpus --mode=toe --client --deliver=summary --stdout

    Это не совсем хороший способ, правильно использовать сигнатуры [--signature=DSPAM-Signature] и переобучаться в режиме [--source=error]. Но у меня большая нагрузка и dspamd работает в режиме «TrainingMode notrain», потому сигнатур нет. Для переобучения использую само тело письма. В этом случае важно, что бы тело письма осталось неизменным.

    Из папки, куда письма перекладываются по IMAP, можно вырезать («X-Envelope-To», «X-Orcpt», «Original-Recipient», «X-DSPAM-Result», «X-DSPAM-Confidence», «X-DSPAM-Probability») заголовки и передать на обучение dspam. Из папки, куда пересылают письма (в режиме «переслать как вложение»), сначала надо вытащить из письма вложение, и уже это вложение передать на переобучение dspam-у. Python без проблем умеет всё это делать.

    Варианты таких скриптов нагугливаются. Вот, как вариант: switch.richard5.net/isp-i...am-with-scripts/ Я им не пользовался, но вроде что-то похожее.

  3. mcwees пишет:

    mcwees.spb.ru/dspam_addheader.patch

    А как-то dspam_train не приручить? По названию — он для того и нужен вроде.

    У меня на сервере не зело много почты, пока я включил TrainingMode teft.

    Ну и как-то лениво «распиливать» мэйлбоксы. Правда, dspam_train на них ругается, говорит — result: BROKEN result!!

  4. kocmuk.ru пишет:

    Да, dspam_train умеет обучать. Он нужен для начального обучения, когда есть много писем со спамом и не спамом. Описанный мной выше вариант подходит для переобучения в случае ошибок уже в процессе эксплуатации.

    Можно просто завести две папки spam и not_spam в своем ящике и перекладывать туда письма для переобучения в случае ошибок.

    Что касается BROKEN result!, то это что-то не то вернулось из dspam. Посмотрите в dspam_train когда это происходит и попробуйте проделать это же самое руками. Будет понятнее что ждет скрипт и что происходит на самом деле.

  5. mcwees пишет:

    мда...

    dspam[5916]: segfault at 7ffbe2471280 ip 00007ffbe301e4b7 sp 00007fff1bd80000 error 4 in libdspam.so.7.0.0[7ffbe3005000+1d000]

    и часа не проработал...

  6. kocmuk.ru пишет:

    dspam-cgp.c обновил до версии 1.0.7.

Оставить комментарий


Антиспам-картинка