r11 - 06 Jun 2007 - 14:11:12 - Sergej ZnamenskijYou are here: TWiki >  Clearmail Web > Desc
Описание проекта ClearMail

1. Описание

1.1 Цель

  • Автоматизация жалоб клиентов СТ "Ботик" на спамовые письма; максимизация блокировки спама.

1.2 Задачи

  • Список решаемых задач
    • Быстрая жалоба на спамовые письма в таких почтовых клиентах, как :
      • The Bat, Outlook, mutt
    • Автоматическа жалоба SpamCop.
  • Понижение расходов СТ Ботик за счет блокировки спамовых писем (экономия траффика)

1.3 Структура проекта

  • Серверная часть
    Все скрипты и модули предназначены для работы под *NIX образными ОС.:

    • Скрипты

      • Регистрационный сервер (reg.pl)

        Язык реализации: Perl.
        Данный скрипт заводит для клента уникальный ключ, который будет использоваться для идентификации клиента.
        Включена поддержка проверки флуда - в настройках скрипта можно выставить, через какой промежуток времени
        пользователь может делать полноценные запросы. Сменить ключ после первичной регистрации можно только с
        той машины, email которой был указан. Скрипт логирует все обращения, и изменения данных.

      • Управление жалобами (sreceive)

        Язык реализации: Perl.
        Скрипт получает письмо с жалобой, смотрит, есть ли в письме вложения, и правильно ли они отправлены, если вложений нет, или письмо отправлено неправильно(то есть тип вложения какой угодно но не message/rfc822)то письмо удаляется, так же как и в случае, если письмо уже проверялось. В файл LOG записывается информация о том, что письмо пришло, число, а так же "правильное" или нет. Если же письмо "правильное", то происходит разбор и сохранение письма.

      • Подтверждение жалобы на спам (ssubmit)

        Язык реализации: Perl.
        Скрипт получает письмо от SpamCop.Net с ссылкой на форму регистрации спама на их сервере. Письмо разбирается,
        "выдирается" от туда ссылка на форму, на страничке с формой "выдираются" все необходимые для регистрации спама
        парметры, формируется запрос и регистрируется спам.

      • Интерфейс модератора click here

        Модератор может просматривать сомнительные письма жалобщиков, помечать их как спам/неспам, что, соответственно,
        повышает/понижает очки доверия жалобщика.

    • Модули

      • Rating.pm

        Содержит функции для работа с очками жалобщиков (повышение/понижение очков доверия, "насильственное"
        задание очков доверия, представление очков в формате 0..100), а так же фунции, необходимые для работы
        серверных скриптов.
        Используется процесс "затухания" (любая жалоба имеет больший "вес" для задания очков доверия, чем предыдущая),
        для этого используется "взвешенная сумма" из 10 слагаемых (хорошие/плохие жалобы).

      • Functions.pm

        Используется модуль Mail::Spamassassin для идентификации спама и рейтинг пользователя. Для того, чтобы определить, является ли письмо спамом или нет, используется рейтинг жалобщика и оценка spamassassin’a. Если письмо является спамом, рейтинг жалобщика увеличивается и на SpamCop.Net отправляется письмо-жалоба в определенном формате для подтверждения регистрации Spam-а. Если письмо не является спамом, то оно подлежит дальнейшей проверки модератором, который решает, увеличить или уменьшить рейтинг жалобщика. Следующим шагом является сохранение письма. Письма и приложения сохраняются в разных папках, в зависимости от типа (спам или не-спам). Заключительной частью программы является создание файлов с путями до файлов с письмами и приложениями для более эффективной работы модератора.
        Функции:
        • md5(). Данная функция предназначена для того, чтобы перевести тело письма в 8 значный код для того, чтобы потом можно было определить, приходило письмо или нет. Результат сохраняется в файле. На вход функции подается тело письма и Uin жалобщика. Функция возвращает 0, если письмо уже ьыло сохранено ранее, и 1,если в архиве такого письма нет.
        • analysis(). Функция получает на вход тело письма, Uin жалобщика (который берется с поля subject). Результат 0, если письмо ранее проверялось и 1, если не проверялось. Есои письмо не проверялось, оно сохраняется в архиве, а если оно является спамом, то повышается рейтинг жалобщика на 1 балл и письмо отсылается на spamcop.
        • save_attachments(). Функция предназначена для сохранения аттачментов. На вход функции подается тело аттачмента, Uin жалобщика и переменная $level, в которой находится 1 или 0, в зависимости от того, можно ли доверять жалобщику (тогда письмо является спамом) или нельзя (тогда письмо является не спамом).
        • save_letters(). Функция предназначена для сохранения самого письма. На вход подается письмо и Uin жалобщика.
        • shure(). Функция определяет, можно ли доверять жалобщику или нет на основе оценки spamassassina и рейтинга жалобщика. Если в результате жалобщику доверять можно, то письмо является спамом, если нет, то письмо не является спамом.
        • check_letter_id(). Функция предназначена для того, чтобы проверить, приходило ли письмо раньше или нет. На вход функции подается ID письма, все полученные ID хранятся в папке.
        • mail_spam(). Функция пропускает каждый аттачмент через spamassassin. Результат - количество очков.

      • Config.pm

        Использует файл настроек "config", в котором содержатся пути к серверным скриптам и используемыми ими
        директориями, там так же хранятся все E-mail адреса, испльзуемые в проекте, весовые коэффициенты для
        "взвешенной суммы" и высчитывается можарирующий коэффициент для нее же.

      • Utils.pm

        Здесь собраны функции, используемые по всему проекту, но не прикрепленные к определенной части проекта:
        isLocal, lockFile, unlockFile, internalError, spamCopReport, setTime, errSetup, rDateValid.

    • Утилиты

      • Инсталятор серверной части (*NIX)

        Использовалось программирование под shell (Makefile) и Perl.
        Устанавливаются все основные скрипты и плагины для работы системы.

  • Клиентская часть

    • Утилиты

      • Инсталлятор Утилит и Плагинов под win32 install.exe

        Язык реализации: NSIS. Modern GUI.
        Инсталлятор устанавливает Регистрационный клиент и плагины, написанные под win32.

      • Регистрационный клиент (win32)

        Язык реализации: c/c++. GUI интерфейс.
        Обращается к Регистрационному скрипту (reg.pl) на сервере, и сохраняет на машине клиента полученный ключ.
        Ключ сохраняется для текущего пользователя.

      • Регистрационный клиент (*NIX)

        Язык реализации: Perl. Консольное приложение.
        Обращается к Регистрационному скрипту (reg.pl) на сервере, и сохраняет на машине клиента полученный ключ.
        Ключ сохраняется для текущего пользователя.

    • Плагины
      Облегчают процесс жалоб на спамовые письма

      • The Bat (win32)

        Написан на c/c++, имеется проверка на повторные жалобы на одно и то же письмо, причем для каждого
        пользователя список уже "обжалованных" персонализирован. Имеется GUI интерфейс для настройки плагина,
        настройки персонализиро ваны для каждого пользователя. Свой способ отсылки писем и индикатор статуса
        отсылки. Неограниченное количество одновременных жалоб, возможность добавления жалобы в очередь не
        ожидая завершения предыдущих жалоб.

      • Outlook (win32)

        Язык реализации: VBA (Visual Basic for Applications)
        Используется объектная модель Outlook и работа с реестром Windows для формирования жалоб в необходимом формате.

      • mutt (*NIX)

        Использована встроенная технология макросов + внешний скрипт отсылающий жалобу, написанный в свою
        очередь на Perl.

2. Бюджет

  • HELP Кто может, напишите!

3. Исполнители

3.1 Основные исполнители

  • Над проектом v1.0 работают: Сербина Виктория, Власова Эльвира, Погодин Сергей, Халявин Юрий.

3.2 Консультанты

  • Косультируют вышеперечисленных - Абрамов C.М., Бурчу С.В. и другие.

4. Сроки исполнения

  • Рассчетные сроки завершения проекта v1.0 - конец августа.

5. Состав и характеристики выполненного проекта

  • На данный момент проект в стадии завершения. Проект развернут на виртуальной машине clearmail.botik.ru, в боевой готовности. Все необходимые материалы находятся в cvs на revenge co clearmail

-- Yury Khalyawin - 20 Mar 2005

-- SodzO - 21 Mar 2005

-- SodzO - 12 Aug 2005

  • install_0.2.exe: Инсталятор клиентской части проекта ClearMail v1.0
Show attachmentsHide attachments
Topic attachments
I Attachment Action Size Date Who Comment
exeexe install.exe manage 325.3 K 19 Aug 2005 - 10:24 SodzO Инсталятор клиентской части проекта ClearMail v1.0
exeexe install_0.2.exe manage 326.8 K 06 Sep 2005 - 08:41 SodzO Инсталятор клиентской части проекта ClearMail v1.0
Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r11 < r10 < r9 < r8 < r7 | More topic actions
 
Powered by TWiki

This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback