Написать в Telegram

Почему письма попадают в спам: SPF, DKIM и DMARC простыми словами

Разбираем технические причины, по которым письма с сайта и рассылки уходят в спам, и как настроить SPF, DKIM, DMARC и обратную запись.

Заявки с сайта не доходят, клиенты не получают письма для восстановления пароля, рассылка уходит в спам — почти всегда причина техническая, и почти всегда она решается за день.

Как почтовый сервис решает, спам это или нет

Gmail, Яндекс Почта и Mail.ru проверяют письмо по нескольким вопросам: действительно ли оно отправлено от имени этого домена, не подделано ли в пути, какая репутация у сервера и домена, как получатели реагировали на прошлые письма. Первые два вопроса закрывают SPF, DKIM и DMARC.

SPF — кто имеет право отправлять

SPF — это TXT-запись в DNS домена со списком серверов, которым разрешено отправлять письма от его имени. Например:

v=spf1 ip4:203.0.113.10 include:_spf.yandex.net ~all

Если письмо пришло с сервера, которого нет в списке, — это подозрительно. Частая ошибка: сайт отправляет письма с хостинга, а в SPF указан только Яндекс 360.

DKIM — подпись письма

Сервер-отправитель подписывает письмо закрытым ключом, а открытый ключ публикуется в DNS. Получатель проверяет подпись и убеждается, что письмо действительно от вас и не изменено. Без DKIM доставляемость в крупные почтовые сервисы заметно падает.

DMARC — что делать с подделками

DMARC связывает SPF и DKIM с адресом в поле «От кого» и говорит получателю, как поступать с письмами, не прошедшими проверку: пропускать, класть в спам или отклонять. Начните с мягкой политики и отчётов:

v=DMARC1; p=none; rua=mailto:dmarc@example.ru

Когда по отчётам видно, что все легитимные письма проходят проверку, политику можно ужесточить до quarantine или reject.

Обратная запись (PTR) и репутация IP

У IP-адреса сервера должна быть обратная DNS-запись, совпадающая с именем почтового сервера. Если сайт стоит на общем хостинге, IP может иметь плохую репутацию из-за соседей — тогда надёжнее отправлять письма через сервис с хорошими IP или через собственный правильно настроенный сервер.

Контент и поведение получателей

  • Не отправляйте рассылки по старым базам — много несуществующих адресов портят репутацию.
  • Добавьте ссылку отписки и заголовок List-Unsubscribe.
  • Не делайте письмо из одной картинки.
  • Следите за жалобами в постмастерах Яндекса, Mail.ru и Google.

Чек-лист за 15 минут

  1. Проверьте, есть ли у домена SPF, DKIM и DMARC.
  2. Отправьте тестовое письмо на Gmail и посмотрите заголовки: spf=pass, dkim=pass, dmarc=pass.
  3. Проверьте PTR-запись IP отправителя.
  4. Подключите домен к постмастерам.

Если хотя бы один пункт не «pass» — напишите мне, разберу заголовки и скажу, какие записи добавить.

Сергей КукушкинFullstack-разработчик, с 2011 года. Обо мне

Нужна помощь с задачей?

Опишите проект в двух словах — отвечу в течение рабочего дня, предложу решение и оценку.

Код с картинки