Сегодня пришел убер-менеджер и пожаловался что их ручная рассылка писем выдает много недоставок, нужно проанализировать в чем проблема и решить ее.
Просмотрев список abuse-писем
, не было ничего необычного: несуществующий/переполненный почтовый ящик приемник, все как обычно.
Однако, проверяя заголовки полученного письма в яндекс.почте было обнаружено:
plaintextX-Yandex-Spam: 4
4 дня назад, я уже проверял подобные письма через mail-tester.com, он давал оценку 10 из 10 то есть все хорошо, не спам.
Пришлось снова проверять письма на спам при помощи выше указанного сервиса, и наткнулся на проблемы:
Текстом (на всякий случай):
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.
Обзор репозитория показал что последний апдейт был в 2013 году (7 лет назад, на момент написания этой статьи), но результат работы продукта на лицо (наше письмо в спаме, и mail-tester сообщает о проблеме), а значит проект работающий на реальных почтовых серверах наших потенциальных клиентов. Посмотрев страницу загрузки стало ясно: проект Vipul's Razor входит в состав коммерческого продукта Cloudmark Authority и поддерживается этой компанией.
На сайте spamassassin дается более понятное описание проекта:
Так же было найдено еще несколько русскоязычных статей по работе с open-source версией проекта (Artistic License 1.0), вот и вот.
Изучив документацию проекта Vipul's Razor стало ясно:
Listed in Razor2
), которые ранее агенты Razor2
пометили как спам и теперь Razor2 gives confidence level above 50%
- нет доверия содержимому этого письма (если очень коротко).Здесь высказана мысль о том, что одним из вариантов попадания в немилость Razor2
мог быть факт попадания письма в спам-ловушки. А почистить спам-базу не так то просто: надо обратиться к каждому держателю агента Razor2
... проще найти и удалить спамные куски.
Начались эксперименты с выявлением спамных кусков: удаление вложений, изменение содержимого письма в разных вариациях с удалением возможных спамных мест (хотя письмо содержало всего-лишь пару коротких предложений).
В конечном итоге спамный кусок был выявлен ... банально ... кто-то в подпись в письме вставил километровую ссылку на сайт компании не пойми откуда, причем судя по всему ссылка была скопирована из одного письма прямо из редактора с версткой, где ссылка была не прямая, а с редиректом из почтового сервиса со свяким хламом в get
параметрах. Естественно попадая в ящик получателя ссылка была обернута в чекер почтового сервиса (где это есть), что в итоге приводило минимум к 2-м редиректам.
Изменение href
атрибута на прямую ссылку не дали результата, видимо анкор уже является отдельным спамным куском. Даже удаление www (который там не нужен), не дал результата.
В итоге удалив ссылку, оставив только адрес сайта (не ссылка), удалось пройти спам-тест.
Если следовать описанию проекта Vipul's Razor, нельзя однозначно сказать что спам был обнаружен из-за непрямой ссылки, так как идентификация спама основывается на оценке спама пользователями (если очень просто). Однако, само наличие такой ссылки плохой признак.
RAZOR2_CF_RANGE_51_100
и RAZOR2_CHECK
можно путем удаления спамных кусков из письма, а обнаружить эти куски можно только экспериментальным путем.