Razor spam detected

25.01.2021
Неудачный тест: RAZOR2 сообщает о наличии спама
Неудачный тест: RAZOR2 сообщает о наличии спама

Связана ли яндекс.почта и Razor2 мне не известно, проблема недоставок не связанных со спамом очевидно не может иметь отношение к Razor2. Ниже изложена предыстория.

Сегодня пришел убер-менеджер и пожаловался что их ручная рассылка писем выдает много недоставок, нужно проанализировать в чем проблема и решить ее.

Просмотрев список abuse-писем, не было ничего необычного: несуществующий/переполненный почтовый ящик приемник, все как обычно.

Однако, проверяя заголовки полученного письма в яндекс.почте было обнаружено:

•••
plaintext
X-Yandex-Spam: 4

4 дня назад, я уже проверял подобные письма через mail-tester.com, он давал оценку 10 из 10 то есть все хорошо, не спам.

Пришлось снова проверять письма на спам при помощи выше указанного сервиса, и наткнулся на проблемы:

Razor обнаружил спам в письме
Razor обнаружил спам в письме

Текстом (на всякий случай):

•••
plaintext
-2.43 RAZOR2_CF_RANGE_51_100 Razor2 gives confidence level above 50% cf: 100 -1.729 RAZOR2_CHECK Listed in Razor2 (http://razor.sf.net/)

Проект Vipul's Razor

Интернеты исчерпывающей информации по этой проблеме к сожалению не дали (или я плохо искал). Однако, был найден сайт проекта Vipul's Razor.

Обзор репозитория показал что последний апдейт был в 2013 году (7 лет назад, на момент написания этой статьи), но результат работы продукта на лицо (наше письмо в спаме, и mail-tester сообщает о проблеме), а значит проект работающий на реальных почтовых серверах наших потенциальных клиентов. Посмотрев страницу загрузки стало ясно: проект Vipul's Razor входит в состав коммерческого продукта Cloudmark Authority и поддерживается этой компанией.

На сайте spamassassin дается более понятное описание проекта:

Vipul's Razor - это распределенная совместная сеть для обнаружения и фильтрации спама, основанная на отправке спама пользователями. Обнаружение выполняется с помощью сигнатур, которые эффективно обнаруживают изменяющийся спам-контент, а ввод данных пользователем подтверждается путем присвоения репутации.

Так же было найдено еще несколько русскоязычных статей по работе с open-source версией проекта (Artistic License 1.0), вот и вот.

Причины попадания в спам

Изучив документацию проекта Vipul's Razor стало ясно:

Письмо содержит куски кода (Listed in Razor2), которые ранее агенты Razor2 пометили как спам и теперь Razor2 gives confidence level above 50% - нет доверия содержимому этого письма (если очень коротко).

Здесь высказана мысль о том, что одним из вариантов попадания в немилость Razor2 мог быть факт попадания письма в спам-ловушки. А почистить спам-базу не так то просто: надо обратиться к каждому держателю агента Razor2 ... проще найти и удалить спамные куски.

Решение проблемы с RAZOR2

Начались эксперименты с выявлением спамных кусков: удаление вложений, изменение содержимого письма в разных вариациях с удалением возможных спамных мест (хотя письмо содержало всего-лишь пару коротких предложений).

В конечном итоге спамный кусок был выявлен ... банально ... кто-то в подпись в письме вставил километровую ссылку на сайт компании не пойми откуда, причем судя по всему ссылка была скопирована из одного письма прямо из редактора с версткой, где ссылка была не прямая, а с редиректом из почтового сервиса со свяким хламом в get параметрах. Естественно попадая в ящик получателя ссылка была обернута в чекер почтового сервиса (где это есть), что в итоге приводило минимум к 2-м редиректам.

Изменение href атрибута на прямую ссылку не дали результата, видимо анкор уже является отдельным спамным куском. Даже удаление www (который там не нужен), не дал результата.

В итоге удалив ссылку, оставив только адрес сайта (не ссылка), удалось пройти спам-тест.

После удаление спамного кода из письма удалось пройти тест
После удаление спамного кода из письма удалось пройти тест

Итог

Если следовать описанию проекта Vipul's Razor, нельзя однозначно сказать что спам был обнаружен из-за непрямой ссылки, так как идентификация спама основывается на оценке спама пользователями (если очень просто). Однако, само наличие такой ссылки плохой признак.

Решить проблемы RAZOR2_CF_RANGE_51_100 и RAZOR2_CHECK можно путем удаления спамных кусков из письма, а обнаружить эти куски можно только экспериментальным путем.

Винить кого-то в проблеме бесполезно, нужно просто сделать выводы и предпринять меры по предотвращению таких инцидентов. В итоге мы решили:
  • внимательно проверять содержимое письма (да, надо было изначально, но так получилось)
  • в начале каждого дня перед отправлением шаблонных писем проверять такие письма через сервис, например тот же mail-tester, а в случае обнаружения проблем передавать проблему решающему отделу