Отправка писем и спам-фильтры

При разработке и поддержке проектов с необходимостью оповещения хоть сколько-нибудь значительного количества пользователей нередко появляются проблемы со спам фильтрами. Даже если вы легальная компания, даже если пользователи нуждаются в ваших оповещениях, спам фильтры могут сильно усложнить жизнь. Они не только закинут ваши письма в «Спам» у получателя, но и не дадут отправить оповещение через свой SMTP-сервер. Приведу пример работы одного из проектов заказчика через SMTP Яндекса.

В техподдержку одного из проектов которым я занимался начали поступать сообщения от пользователей о проблемах получения писем. Например, пользователь зарегистрировался и не получил письмо на почту со ссылкой подтверждения аккаунта. Мы сразу же проверили отправку, все работало. Понятное дело, потом посмотрели логи и увидели там большой список ошибок при отправке почты. Все отправки писем были, как это обычно делается, обернуты в исключения, поэтому в логах все сохранилось. Выглядели эти ошибки примерно так:

Expected response code 250 but got code «554», with message «554 5.7.1 [2] Message rejected under suspicion of SPAM; https://ya.cc/1IrBc … «

Мы стали разбираться в чем дело и почему такое происходит, параллельно отправив запрос в техническую поддержку Яндекса. Наши тесты показали, что Яндекс периодически блокирует письма которые считает «подозрительными», причем, одни «подозрительные» письма он отправляет без проблем и большими количествами, другие останавливает. Причина блокировки писем оставалась не ясна. Все необходимое для отправки писем было настроено — SPF, DKIM и DMARC, да и содержимое было нормальным — без рекламы и тому подобного.

У этого же заказчика есть другой проект, который также работает через SMTP-сервер Яндекса с количеством успешно отправленных писем более 1 500 за неделю, этот же (проблемный) проект отправил всего около 500 за неделю и попал под спам-фильтр. Вывод мы сделали простой, антиспам фильтр Яндекса работает автоматически и практически непредсказуем. Если повезет, все будет хорошо, не повезет, уходите в другой сервис, желательно платный.

Через некоторое время мы получили ответ Яндекса, который подтвердил наши догадки:

Здравствуйте!

Любой сайт для отправки писем использует специальный сервер — SMTP. Он не всегда принадлежит той компании, на которой находится почта.

Сейчас отправка писем с вашего сайта настроена через SMTP-сервер Яндекса. В Яндекс.Почте есть ограничения на отправку писем, которые могут сокращаться, если ваши письма покажутся подозрительными Спамообороне. Она учитывает различные характеристики отправляемых писем, в том числе их количество и частоту отправлений, поэтому разного рода автоматические уведомления от сайтов могут повлиять на текущие ограничения ящика.

При достижении лимита отправленных писем Спамооборона может временно заблокировать отправку. Блокировка снимается автоматически через некоторое время после прекращения всех попыток отправления писем.

Лучше настроить отправку через SMTP-сервер рассылочного сервиса, или использовать сервер вашего хостинг-провайдера.

Похоже наши письма показались подозрительными для Самообороны Яндекса и она урезала лимиты. После данного письма мы решили для этого проекта отправлять транзакционные письма через sendinblue.com, это аналог mailgun.com. Он, конечно же, решил все проблемы с отправкой.

10.09.2021

Категория(-и): Заметки

# #

Добавить комментарий