Связана ли Яндекс почта и Razor2 мне не известно, проблема не доставок не связанных со спамом очевидно не может иметь отношение к Razor2. Ниже изложена предыстория.
Сегодня пришел убер-менеджер и пожаловался что их ручная рассылка писем выдает много не доставок, нужно проанализировать в чем проблема и решить ее.
Просмотрев список abuse-писем
, не было ничего необычного: несуществующий/переполненный почтовый ящик приемник, все как обычно.
Однако, проверяя заголовки полученного письма в Яндекс почте было обнаружено:
X-Yandex-Spam: 4
4 дня назад, я уже проверял подобные письма через mail-tester.com, он давал оценку 10 из 10, то есть все хорошо, не спам.
Пришлось снова проверять письма на спам при помощи выше указанного сервиса, и наткнулся на проблемы:
Текстом (на всякий случай):
-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, а в случае обнаружения проблем передавать проблему решающему отделу