Антиспам I. POP3Catcher

«#$% %$^$%^ @!» — это, или примерно это я произнес,
в очередной раз приняв почту на своем диалапе. Почты было на 1М — и
это всего за день. Стало ясно, что пришла пора искать программы, которые
будут отучать спамеров от моего мэйлбокса.

Поиски программ затянулись. Всеразличные
MailWasher’ы и прочие
SpamPal’ы не прижились. У каждой
программы находились свои багофичи, которые делали работу с ней
практически невозможной.

Хотелось же вот какого счастья:

  • Программа должна быть маленькой, поскольку будет сидеть в памяти постоянно
  • Точность опознания спама должна превышать 50%. Имитатор бросания монетки я и
    сам могу написать
  • Самое главное — вероятность классификации корректного письма как «спам» должна быть
    сведена к минимуму. Желательно, чтобы и вовсе равнялась нулю. Ну не могу я себе позволить
    терять чьи бы то ни было письма!

Как отличают спам

Для начала небольшое лирическое отступление. Перед тем, как описывать программы, надо
бы вообще понять, что они будут делать. Итак, вкратце, какие методы обнаружения спама
существуют:

  • «Черные списки» — в них заносятся адреса самых злостных спамеров. Один из таких
    списков валяется где-то на задворках www.exler.ru. Лично я
    убедился в бесполезности такого метода после трех месяцев использования. Список Экслера
    пополнился несколькими сотнями адресов, а спама меньше не стало. Хороший спамер
    (хороший спамер — мертвый спамер!) редко повторяется, постоянно меняя адреса.
    Резюме: плохой метод, неудачный.
  • Списки открытых релеев. Открытый релей — это почтовый сервер, который
    позволяет рассылать почту без каких-либо ограничений. Нормальный же почтовый сервер
    должен проверить IP адрес клиентского компьютера и разрешить посылку письма только
    для «своих» диапазонов IP адресов. Почему плохи открытые релеи? Хотя бы потому, что
    вычислить и отключить спамера на них практически невозможно. Именно по этой причине в
    Интернете ведутся списки открытых релеев, которыми можно воспользоваться для проверки — не
    через такой ли сервер было послано пришедшее письмо. Если это так, то с вероятностью 99%
    к вам пришел спам. Резюме: 99% спама уходят в мусорную корзину, однако к ним присоединяется
    изрядная доля ваших респондентов, пользующихся бесплатной почтой. Без создания «белых списков»
    использование метода чревато потерей ваших знакомых :)
  • Статистический анализ писем. Соответствующие алгоритмы позволят вычислить, какие из
    пришедших писем являются спамом. С одной стороны, этот метод практически не уменьшает
    трафик — письма все равно придется скачать и разобраться «на месте». С другой стороны,
    сортировка писем тоже очень полезная задача. Лично я получаю очень большое количество
    спама и ручная сортировка «спам — не спам», занимала приличное количество времени.
    Резюме: качество обнаружения спама зависит только лишь от используемого алгоритма.

POP3Catcher

Первым кандидатом на медаль оказался POP3Catcher.
Программа существует в двух вариантах — полном (за деньги) и lite (за так). Фактически, можно
брать lite — для домашнего употребления хватит за глаза.

POP3Catcher представляет собой POP3 сервер, который вытягивает почту с любого
количества аккаунтов, при этом маркируя спам путем добавления соответствующего
заголовка в письмо. Для определения спама используются следующие методы:

  • Базы открытых релеев (одновременно можно использовать несколько штук)
  • Черный список email-адресов
  • Черный список IP-адресов (при этом можно отсекать целые диапазоны ненавистных вам IP)
  • Настраиваемые фильтры, позволяющие, например, отказать письмам большого размера.

Очень важно, что POP3Catcher позволяет формировать «белые списки» email- и IP-адресов.
При этом, если обнаруживается, что письмо попало в «белый список», то оно считается
100% «чистым» и никаких проверок не производится. Рекомендую сразу занести в «белый список»
адрес вида «@вашафирма.ru», дабы важное письмо от шефа не попало в папку «Спам» ;)

Впечатления от использования POP3Catcher остались только положительные — свою
задачу он выполняет на 5+. У меня правильно определялся практически весь спам, прорываться
умудрялись только письма начинающих спамеров, которые не стеснялись использовать
почтовые сервера своего родного провайдера (не открытый релей). Одно-два письма в день -
совсем не 30-50 за тот же срок.

Дополнительный бонус при использовании POP3Catcher — возможность установки
плагинов. При этом можно взять
несколько готовых с сайта автора, а можно попытаться написать самостоятельно,
благо API открыт для всех.

Вживление POP3Catcher будем производить в несколько этапов. Пусть изначально почтовый клиент
был настроен следующим образом:

POP3 сервер: pop.yandex.ru
Имя пользователя: vasja_p
Пароль: password

Теперь мы настраиваем POP3Catcher так, как раньше был настроен почтовый клиент:

POP3Catcher

Почтовый клиент (в данном случае The Bat!) перенастраивается на прием почты
с локального mail-сервера (127.0.0.1). Обратите внимание на метаморфозу, произошедшую
с именем пользователя (описано в файле «How to use.txt»):

TheBat!

Дело осталось за малым — создать фильтр, который будет перекладывать спам в
отдельную папку. При этом под действие фильтра будут попадать письма, имеющие в заголовке
поле «X-Spam-Mark», добавляемое POP3Catcher:

Фильтр

Собственно основная часть работы проделана. Можно продолжать пользоваться почтой,
наслаждаясь чистотой папки Inbox и периодически поглядывая в Inbox\SPAM. Если в Inbox\SPAM
обнаружится письмо, не являющееся спамом, то у вас есть выбор:

  • Попросить автора этого письма сменить почтовый сервер на более приличный. Как ни странно,
    но этот совет окажется полезным для вас обоих. Дело в том, что подобного рода фильтрация по
    списку открытых релеев может проводиться автоматически на mail-сервере, дабы оградить
    пользователей сервера от спама. Целый ряд провайдеров делает это, впрочем, особо не афишируя
    сей факт. Так что, быть может, автор вышеупомянутого письма уже не раз удивлялся, почему
    отправленные им письма не доходят до адресатов. Успейте первым объяснить, что он делает не так ;)
  • Добавить автора в «белый список» email-адресов или добавить используемый им сервер (см.
    заголовки письма) в «белый список» IP-адресов.

Теперь разберемся, что делать, если письмо не попало в Inbox\SPAM, хотя должно было.
И снова у вас есть выбор:

  • Попросить автора больше так не делать :)
  • Добавить email автора в «черный список»
  • Посмотреть в заголовках письма IP адрес сервера и добавить его в «черный список»
    IP-адресов.

Могу заверить, что подобного рода операции будут очень редкими и предназначены
только для того, чтобы первоначальную точность определения спама (вполне достойную) довести
до 99,9%, а вероятность ошибочной трактовки корректного письма как «спам» свести к
абсолютному нулю.

Мораль

POP3Catcher строго рекомендуется к установке
как обладающая целым рядом полезных функций, количество которых увеличивается от версии к
версии. При желании можно даже потратить немножко денег, получив эквивалентную отдачу в виде
совсем уж полезных функций, как то: автоматический дозвон и скачивание почты по расписанию,
раздача почты в локальной сети, предпросмотр писем с возможностью удаления прямо на сервере.

Комментирование закрыто.