uCheckeruChecker
Марк АвриловОпубликовано обновлено 11 мин чтения

Как работают спам-фильтры: от списков слов до нейросетей

Спам-фильтр (spam filter) решает, что сделать с письмом: принять во «Входящие», положить в спам или отклонить ещё на входе. Фильтры стоят у почтовых провайдеров, на корпоративных шлюзах и в самих почтовых программах, и письмо часто проходит через несколько сразу.


От списков слов к машинному обучению

Первые фильтры держались на списках запрещённых слов и чёрных списках IP. Спамеры обходили их быстро, меняя написание и арендуя новые сервера. В 2002 году Пол Грэм опубликовал эссе «A Plan for Spam» и предложил байесовский подход. Фильтр перестаёт искать конкретные слова и считает вероятность спама по совокупности признаков, которым научился на письмах самого пользователя.

Сейчас крупные провайдеры используют машинное обучение. Google писал в 2019 году, что его модели вместе с другими защитами не пускают во «Входящие» больше 99,9% спама, фишинга и вредоносных писем, а переход на TensorFlow добавил около 100 миллионов заблокированных писем в сутки. Среди того, что стало ловиться лучше, Google назвал письма из картинок, письма со скрытым содержимым и рассылки с новых доменов, которые прячут немного спама в обычном потоке.

В 2023 году Gmail сменил способ перевода текста в числа для своего классификатора. Новый векторизатор RETVec устойчив к подмене букв похожими символами, невидимым знакам и набивке ключевыми словами. По данным Google, он поднял долю пойманного спама на 38% и снизил ложные срабатывания на 19,4%.

Как устроен спам-фильтр

Современный фильтр это не одно правило, а цепочка проверок. Каждая даёт свой сигнал, и решение складывается из всех вместе.

Соединение и отправитель

Ещё до чтения письма сервер смотрит на IP отправителя: есть ли он в чёрных списках и какая у него история. Адрес из списка Spamhaus может получить отказ сразу, и до содержания дело не дойдёт. Здесь же работает грейлистинг, когда незнакомому отправителю отказывают временно и ждут повтора.

Аутентификация

Сервер проверяет SPF, DKIM и DMARC: разрешён ли IP для домена, цела ли подпись, совпадает ли домен в From с проверенным. Gmail требует SPF или DKIM от всех отправителей, а массовых без SPF, DKIM и DMARC с ноября 2025 года наказывает вплоть до отказов. Как это настроить, описано в пошаговой инструкции.

Репутация и содержание письма

Фильтр учитывает историю домена и IP, то есть жалобы, отказы, попадания в ловушки и скачки объёма (подробно в статье о репутации отправителя). Отдельно оценивается само письмо: тема, текст, HTML, ссылки и вложения. Об этом слое подробнее ниже.

Реакция получателей

Провайдер видит, что люди делают с письмами отправителя. Они открывают, отвечают, достают из спама или, наоборот, жалуются и удаляют не читая. Google советует держать долю жалоб ниже 0,1% и никогда не доходить до 0,3%. Кнопка «Не спам» тоже сигнал, так получатель показывает, что письмо ему нужно.

Контентная фильтрация: что проверяют в письме

Контентная фильтрация (content filtering) разбирает само сообщение и выставляет ему оценку, spam score. Одно подозрительное слово ничего не решает, срабатывает сочетание признаков. Подробнее о том, как считается оценка, в словарной статье «Контентная фильтрация email».

SpamAssassin и оценка в баллах

Открытые фильтры вроде SpamAssassin и Rspamd стоят у хостеров и на корпоративных серверах. SpamAssassin прогоняет письмо через набор правил с весами и складывает баллы. По умолчанию письмо считается спамом с 5 баллов, и в документации сказано, что это довольно агрессивный порог, а провайдерам лучше ставить 8 или 10. Сервисы проверки вроде mail-tester показывают, какие правила сработали на вашем письме.

Провайдеры, шлюзы и почтовые программы

У Gmail есть ещё и вкладки. Промоакции не спам, письмо там остаётся во «Входящих», но в отдельной категории. Туда обычно попадают рекламные рассылки. Если получатель перетащит письмо на другую вкладку, Gmail, по его собственной справке, со временем учтёт это при сортировке.

Как проходить спам-фильтры

Фильтры и спамеры учатся друг у друга, поэтому трюки для обхода устаревают быстрее, чем их успевают внедрить. Вам поможет то, что фильтры сами считают признаками честного отправителя.

  1. Настройте SPF, DKIM и DMARC и проверяйте их после каждого изменения DNS в проверке почтового домена.
  2. Чистите базу. Несуществующие адреса дают отказы, заброшенные превращаются в ловушки.
  3. Добавьте отписку в один клик по RFC 8058 и заметную ссылку в тексте. Человек, который не нашёл, как отписаться, жмёт «Спам».
  4. Пишите тем, кто читает. Если подписчик долго молчит, отправьте ему сначала реактивацию, а потом решайте, оставлять ли его в базе.
  5. Новый домен и IP прогревайте без резких скачков объёма.
  6. Перед крупной отправкой проверьте письмо на спам на своих ящиках в Gmail, Яндексе и Mail.ru.

Если письма уже уходят в спам, порядок действий описан в разделе почему письма попадают в спам.

Источники

Отказы и ловушки фильтр запоминает надолго, поэтому мёртвые адреса лучше убрать до отправки. В uChecker за первые 100 проверенных адресов платить не нужно.

спам-фильтрконтентная фильтрациямашинное обучениеSpamAssassinGmailдоставляемость

Марк Аврилов · Автор материала

Опубликовано Обновлено