FL Online Help

Последнее обновление: [ 03.06.2004 ] Билд: [ 020 ]
[ FidoLook ]
[ Fidolook SL ]
[ Скриншоты ]
[ Что нового ]
[ Последние версии ]


[ Справка ]
[ Установка ]
[ Панель FL ]
[ Настройки ]
[ Горячие клавиши ]
[ Командная строка ]
[ FAQ ]


[ Работа с почтой ]
[ Редактирование ]
[ Шаблоны ]
[ Маски ]
[ Корзины ]
[ Заголовки ]
[ Привязка папок ]
[ Статьи ]


[ Plugins, Modules ]
[ Квотеры ]
[ EMH ]
[ yEnc ]
[ Skiper ]
[ Skin ]
[ TCode ]
[ NewsSaver ]
[ NewArcWizard ]
[ FTNStub ]
[ X-Face ]
[ Локализация ]
[ Файлы справки ]
[ AntiSpam ]


[ Разработчику ]
[ О проекте ]
[ Баг-репорт ]
[ Пожелания ]


[ Линки ]


AntiSPAM Module by DL

Назначение

Модуль SpamFilter предназначен для распознавания спама при скачивании входящей почты с POP3-серверов. Просмотр осуществляется после скачивания сообщения и до передачи сообщения менеждеру правил. В случае обнаружения спама в начало темы письма добавляется сигнатура **** SPAM **** (по умолчанию, можно изменить). Определение спама осуществляется по модели шаблон-вес, где письмо проверяется на соответствие заданным шаблонам, каждый из которых имеет свой вес (hits). Если суммарный вес принятых шаблонов получается больше порогового значения, письмо считается спамом. Шаблоны задаются как регулярные выражения или статистические функции, возможно подключение внешних функции.

Настройка

Внимание: для правильной работы плугина необходимо добавить в менеджер правил
хотя бы одно правило с проверкой содержимого тела письма. Это связано с
реализацией интерфейса плугина.

Плугин и файл настроек необходимо скопировать в папку {Fidolook folder}\Filters\,
где {Fidolook folder} - папка где лежит Fidolook.

Файл настроек SpamFilter.xml, как вы уже догадались :), написан в формате XML со
всеми вытекающими правилами. Если при правке файлы вы допустите ошибку, то в 
лог-файле SpamFilter.log, который появится в тойже директории, будет соответствующее
сообщение об ошибке. Файл считывается один раз при загрузке плугина. Чтобы принять
изменения нужно перезапустить FL. Допустимые теги описаны ниже.

<globals> - глобольные переменные, содержит:
   
  <mark value="**** SPAM ****"/> - строка для пометки спамерских сообщений
  <bodylines value="512"/>       - количество байт от начала тела письма,
                                   просматриваемых на предмет спама.
                                   Чем больше значение, тем медленее проверка.
  <required_hits value="1000"/>  - Необходимое количество хитов
  <debug level="1"/>             - детализация лог-файла, допустимые значения 0-3

<header name="subject" hits="123" nonhits = "345"> - проверка одного из
                                   заголовков письма. Заголовок указывается в поле 
                                   name. Если заголовок присутствует, зачисляется
                                   значение из hits, если отсутствует - из nonhits.
                                   hits или nonhits указываются по необходимости.
                                   Может содержать:

  <pn value="abc" hits="1000"/>  - задает шаблон с регулярным выражением. Если шаблон
                                   подходит, зачисляются hits. 
                                    
  <st filter="func" param="123" hits="750"/> - вызывает функцию для проверки строки.
                                   Если функция дает положительный результат, зачисляются
                                   hits. param - необязательный параметр для функции.
                                   Возможные функции перечислены ниже.

<body> - аналогично header для тела сообщения, может содержать <pn ... > и <st ... >

<whitelist> - содержит адрес, занесенный в белый список. Один тег содержит один
              адрес или фрагмент адреса. Строки чувствительны к регистру.                       
 

<pluguins>  - секция содержит описание внешних функции в виде тегов 
  
  <fn name="S6">s6.dll</fn> - name - имя функции, как она будет вызаваться в теге <st ... >.
                              Внутри тега указывается имя библиотеки, которая экспортирует
                              функцию. Пример библиотеки приведен ниже.

Встроенные функции: (пока есть только одна :))
allcaps - зачисляет хиты если все буквы с заголовке - заглавные.

Пример внешней функции (зачисляет хиты если в заголовке есть не меньше 6 пробелов подряд)

#include "windows.h"
//---------------------------------------------------------------------------
#pragma argsused
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved)
{
        return 1;
}
//---------------------------------------------------------------------------
extern "C" _export __stdcall int FN(char *header, int len, char *param)
{
 int i,k=0;
 for(i=0;i<len;i++)
 {
  if(header[i]==' ')
  {
   k++;
   if(k > 5) return 1;
   continue;
  }
  k = 0;
 }
 return 0;
}
//---------------------------------------------------------------------------

Требования

Версия FL не ниже a86

Последняя версия

Актуальная версия: 0.1.0.0 от 11/07/2003
[antispam.0.3.zip]

Обновления

[27.02.2004] 0.3 
             Убраны найденные баги, более быстрая работа.
             Должен быть отучен от Борландовской RTL :)
[11.07.2003] 0.1
             Первая альфа-версия.