Контентная фильтрация email: как спам-фильтры анализируют содержимое писем
Контентная фильтрация (content filtering) - процесс, при котором почтовый сервер анализирует содержимое входящего письма и решает, куда его направить: во входящие, в спам или вовсе отклонить. Фильтр разбирает текст, HTML-разметку, ссылки, вложения и метаданные. На основе набора правил и алгоритмов машинного обучения рассчитывается оценка (spam score), которая определяет судьбу письма.
Что именно проверяет контентный фильтр
Современные спам-фильтры не ищут одно конкретное слово. Они оценивают десятки и сотни признаков одновременно. Вот основные группы:
Текст и формулировки. Фильтр анализирует частотность определённых слов и фраз. «Бесплатно», «только сегодня», «заработок без вложений», «нажмите здесь» - каждая такая фраза добавляет баллы к spam score. По отдельности один триггер ничего не решает. Но когда их десять в одном письме, совокупный эффект срабатывает. Фильтры также учитывают соотношение текста и «шумовых» символов: чрезмерное использование заглавных букв, восклицательных знаков и Unicode-символов вместо обычных букв (например, замена «о» на «0» для обхода фильтров).
HTML-разметка. «Грязный» HTML - сигнал для фильтра. Примеры: скрытый текст (font-size: 0, color совпадает с фоном), избыточное количество тегов, невалидная разметка, которую мог сгенерировать только автоматический инструмент. Фильтр также оценивает соотношение текста и изображений. Письмо, состоящее из одной картинки без текста, получает высокий spam score.
Ссылки. Каждый URL в письме проверяется по чёрным спискам (SURBL, URIBL, Spamhaus DBL). Сокращённые ссылки (bit.ly, tinyurl) повышают подозрительность, потому что скрывают реальный адрес. Множество разных доменов в одном письме тоже настораживает фильтр.
Заголовки (headers). Фильтр проверяет согласованность полей From, Reply-To, Return-Path. Если адрес отправителя в поле From не совпадает с реальным источником, это признак подделки. Также анализируются DKIM-подпись, SPF-запись и результаты DMARC-проверки.
Вложения. Исполняемые файлы (.exe, .bat, .scr) блокируются практически всеми провайдерами. Архивы с паролем тоже вызывают подозрение. Даже безобидный PDF может повысить spam score, если фильтр не может прочитать его содержимое.
Как работает SpamAssassin
SpamAssassin - один из самых распространённых open-source фильтров. Он использует систему правил: каждому правилу присвоен вес (положительный или отрицательный). Письмо проходит через сотни правил, баллы суммируются. Если итоговый score превышает порог (обычно 5.0), письмо помечается как спам. Правила покрывают всё: от содержимого тела до технических заголовков.
Gmail, Outlook и Yahoo используют собственные фильтры, построенные на машинном обучении. Они учитывают не только содержимое, но и поведение получателей: открывают ли они письма от этого отправителя, перемещают ли из спама во входящие, отвечают ли. Контентная фильтрация у крупных провайдеров - лишь один из слоёв, который дополняется репутационной фильтрацией и анализом вовлечённости.
Как писать письма, которые проходят контентные фильтры
- Избегайте скоплений триггерных слов. Одно «бесплатно» в контексте описания тарифа - нормально. Три подряд в теме и прехедере - проблема.
- Поддерживайте соотношение текста к изображениям минимум 60/40. Не отправляйте письмо из одной картинки.
- Используйте чистый, валидный HTML. Избегайте inline-стилей, которые скрывают контент.
- Не сокращайте ссылки. Используйте собственный домен для трекинга кликов, если он настроен корректно (с HTTPS и хорошей репутацией).
- Добавляйте текстовую версию письма (multipart/alternative). Фильтры лучше относятся к письмам, которые можно прочитать без HTML.
- Проверяйте spam score до отправки. Инструменты вроде mail-tester.com или GlockApps показывают, какие правила срабатывают на вашем письме.
Связь между контентом и репутацией
Контентная фильтрация не работает в вакууме. Если репутация IP и домена отправителя высокая, фильтр прощает мелкие недочёты в содержимом. Если репутация низкая, даже идеальное письмо может не дойти. Контент - один из факторов, но не единственный. Чистая база подписчиков, корректная аутентификация (SPF, DKIM, DMARC) и регулярная работа с вовлечённостью важны не меньше.
uChecker помогает снизить нагрузку на контентные фильтры с другой стороны: валидация базы убирает невалидные адреса, спам-ловушки и ролевые ящики. Чем чище список получателей, тем лучше репутация отправителя и мягче реакция фильтров на контент.
