www.eserv.ru // PopFile

oldwiki /2005-02-02 07:12/ (v1)
Продукты и услуги Скачать Документация Купить Поддержка Форумы Партнёрам Статьи О компании
News
15.05.2012
Eserv504
15.05.2012
ActiveSync
01.04.2012
Eproxy508
25.03.2012
Eserv503
26.02.2012
Eserv502
08.02.2012
UMI.CMS
22.12.2011
Eserv431
20.12.2011
Eproxy507
15.11.2011
Eproxy506
19.09.2011
Eproxy505
08.09.2011
Eserv430
07.09.2011
Lightning
19.07.2011
PoweredBy
16.07.2011
IPv6
08.07.2011
Eproxy5beta1
17.06.2011
IPv6DNS
13.06.2011
IPv6Mail
21.03.2011
Eserv428
22.10.2010
Eserv426
22.10.2010
SSL
22.04.2010
Eserv423
20.04.2010
Eserv4WhatsNew
19.04.2010
EservLDAP
19.04.2010
EservDHCP
19.04.2010
EservRubricator
08.04.2010
EservDNS
08.04.2010
NSСI
08.04.2010
WPAD
27.03.2010
Eserv422
27.03.2010
Eserv4Docs
26.03.2010
Eserv4FAQ
21.03.2010
EservIrc
05.03.2010
Eserv421
05.03.2010
HttpProxy
02.03.2010
EservVideo
02.12.2009
Eserv4Wiki
02.12.2009
Eserv4acWEB
02.12.2009
PopPull
22.11.2009
PigMailPigProxy2/WhatsNew
22.11.2009
PigMail/WhatsNew
23.09.2009
FossilEservHowTo
22.09.2009
SourceCodeManagement
22.09.2009
FossilScm
16.09.2009
SendEmail
08.09.2009
RoundCube
07.05.2009
GitScm
07.05.2009
GitEservHowTo
06.05.2009
SunBird

POPfile — 'байесов' автоклассификатор почты

TOC


POPfile — открытый проект, разработка которого началась в сентябре 2002 г на SourceForge. Страница программы — http://popfile.sourceforge.net/. Есть русская версия для Windows и plugin для Outlook.

Идея использовать теорему Байеса для классификации почты пришла в голову Paul Graham в августе 2002 г, она оказалась очень продуктивной, и появилось много программ, эксплуатирующих эту идею. POPfile оказалась самой популярной на SourceForge (поэтому и была мною замечена и самой удобной в использовании. В отличие от большинства других, эта программа служит не только для выяснения спам/не-спам, а для классификации почты по темам вообще.

Описание идеи байесовой фильтрации

http://www.paulgraham.com/spam.html
http://radio.weblogs.com/0101454/stories/2002/09/16/spamDetection.html
http://www.compulenta.ru/2002/9/19/34034/
StatisticalSpamFiltering — наша статья
Авторы PopFile дали также хорошее описание теории:
здесь (вместе с портретом математика и здесь

Принцип работы POPfile

Основной режим работы PopFile — в качестве "личного" POP3-proxy: он устанавливается на компьютер пользователя и включается в цепочку обработки почты между почтовым клиентом и POP3-сервером. Почтовый клиент настраивается на получение почты с PopFile, а PopFile при подключении клиента идет на заданный в логине внешний POP3-сервер, получает сообщения, классифицирует их, записывает названия "классов" в заголовки сообщений и отдает клиенту. Почтовый клиент, соответственно, может по заголовкам автоматически сортировать почту по локальным папкам, включая папку spam.

Классификация основана на вычисление (по теореме Байеса) вероятности нахождения сообщения в том или ином классе (в PopFile классы называются buckets, в русской версии — "корзины") по вероятностям слов, которые в свою очередь вычисляются PopFile по частотным словарям корзин. Словари заполняются во время "обучения" PopFile, и именно от правильности процесса обучения зависит правильность работы PopFile. Обучать PopFile легко: при установке ему просто "скармливаются" коллекции писем разных классов (предполагается, что у всякий пользователь при чтении почты создает у себя папки с почтой на разные темы, вот эти папки и может принять PopFile). Т.е. он фактически "обучается на примерах". При дальнейшей работе PopFile (уже когда почта принимается через него) вся проходящая через PopFile почта копируется им в свой каталог, доступный через web-интерфейс, аналогичный WebMail. Если сообщение классифицируется неверно, его можно там же переклассифицировать (т.е. указать новую "корзину", куда помещать подобные сообщения впредь), PopFile соответственно модифицирует словари. Таким образом, чем больше почты PopFile читает, тем "умнее" становится. Если, конечно, пользователь не забывает исправлять его ошибки — переклассифицировать неверно классифицированные сообщения. Достаточно быстро точность работы PopFile достигает 98-99%, и тогда папку spam можно контролировать (на предмет ложных срабатываний) лишь эпизодически. В этой экономии времени и состоит "экономический эффект" PopFile, смысл его использования.

PopFile для фильтрации спама на SMTP-сервере

Идея использования PopFile на SMTP-сервере для классификации почты "на лету" очень заманчива по нескольким причинам:
  • не нужно ставить PopFile на каждый компьютер, обслуживать, обновлять
  • использование уже обученного PopFile на общем сервере — избавляет всех пользователей всех доменов этого сервера от необходимости самостоятельной начальной "тренировки" PopFile
  • можно спам оставить на сервере в отдельной папке, а не засорять базы почтовых клиентов у пользователей
  • можно отправителю спама прямо во время SMTP-сессии в ответ на команду DATA сказать, что его сообщение классифицировано на этом сервере как спам, и получателю доставлено не будет, и тут же привести URL с инструкцией, что делать в случае, если это было ложное срабатывание. MTA отправителя вернет отправителю письмо и описание ошибки , и таким образом отправитель сразу будет знать, что сообщение не достигло адресата, и что по этому поводу предпринять. Это сводит к нулю возможный ущерб от ложных срабатываний (false positives), и фактически возлагает функцию "доучивания" PopFile на отправителей: те меньше 1% отправителей, чьи письма ошибочно классифицированы как спам, должны будут нажать на URL, и на этом их затруднение решается, и PopFile становится умнее.
К счастью, в PopFile есть API, доступный через XMLRPC для внешних программ, т.е. SMTP-серверу "есть за что уцепиться" для классификации проходящей через него почты. На сегодняшний день (10.07.2003) XMLRPC в PopFile еще находится в стадии тестирования и не включается в дистрибутив PopFile. Однако CVS-версию PopFile, начиная с 0.20, можно использовать совместно с acSMTP — SMTP-сервером из комплекта Eserv/3. Уже готов соответствующий plugin, успешно проходящий обкатку на нашем сервере (включен в комплект версии Eserv3-SM, см. Downloads ). Спец-сборку PopFile, работающую через XMLRPC, уже укомплектованную spam и clear словарями, можно скачать здесь:

Скачать POPfile + XMLRPC

Серверные версии PopFile:
28.01.2005 EservPopfileRC7
10.02.2004 EservPopfileRC6
04.02.2004 EservPopfileRC5
02.02.2004 EservPopfileRC4
30.01.2004 EservPopfileRC3 — новая сборка PopFile + XMLRPC + SQLite с инсталятором. Без словарей spam+clear (можно использовать от прошлой версии или натренировать Popfile самостоятельно).
12.09.2003 POPfile download — новая самодельная полная сборка PopFile — в отличие от авторской включает XMLRPC, вчерашнее обновление BerkeleyDB (см. ниже) и словари spam+clear (уже в формате BerkeleyDB). Не требует внешнего Perl, 3 Мб. Размер сокращен за счет удаления тестов и лишних языков интерфейса.
11.09.2003 http://popfile.sourceforge.net/popfile-0.20.0-special.zip Обновление PopFile, но не релиз! Что нового:
  1. Реализована оценка "неуверенности" фильтра (см. ChiSquaredDistribution)
  2. Используется BerkeleyDB для хранения словарей (старые словари автоматически конвертируются). Переклассификация стала работать на порядок быстрее! Внимание! В ActivePerl и старых версиях PopFile (включая 6Мб билд ниже) BerkeleyDB не установлен по умолчанию, об этом надо отдельно позаботиться. См. BerkeleyDB. Если используется наша сборка PopFile от 12.09.2003 (выше), то качать отдельно BerkeleyDB не нужно — уже есть в комплекте.
  3. fork в PopFile Pop3proxy теперь опционален (в Windows по умолчанию отключен).
  4. Включено в нашу версию PopFile от 12.09.2003, качать отдельно не нужно.
  5. 14.08.2003 Eserv POPfile plugin — 5 Кб, подключается к acSMTP — если используете Eserv3-SM, то обновите версию, т.к. в PopFile менялся XMLRPC API, пришлось переделать и plugin.14.08.2003 (Старая версия, оставлена на всякий случай) POPfile — около 6Мб, включает все что нужно для XMLRPC, не требует внешнего Perl

Работа в качестве POP3-proxy

А в качестве POP3-proxy (штатный режим PopFile) POPfile можно использовать совместно с любым POP3-сервером, включая любую версию Eserv. См. например эту тему форума, где описывается, как Pop3Recv из Eserv/2 может принимать почту через PopFile.

http://notes.rusc.ru/notes/27 — хорошая русская статья по настройке и использованию PopFile (в штатном режиме pop3 прокси).

Outclass — MS Outlook plugin для PopFile

http://www.vargonsoft.com/Outclass/

См. также:
StatisticalSpamFiltering, AntiSpamNews, AntiSpam, EservAntiSpam, ForthWiki:PopFile, ForthWiki:AntiSpam

Работает на Eserv/7.0.beta1/Linux/arm64 (Dec 25 2023)