Кабинет Проверить сайт

Блог

Почему письма с вашего домена попадают в спам и что настроить

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

Вы отправили клиенту счёт, а он говорит, что ничего не получал. Сайт шлёт покупателю «заказ принят», а тот находит письмо в спаме — или не находит вовсе. Текст письма при этом обычный, без единого слова «скидка».

Чаще всего дело не в тексте. Почтовый сервис получателя не может убедиться, что письмо действительно от вас, и на всякий случай убирает его подальше. Убедиться ему помогают три записи в настройках домена: SPF, DKIM и DMARC.

Почему письму не верят на слово

Адрес отправителя в письме — это просто строка, как обратный адрес на конверте. Вписать туда можно что угодно, в том числе ваш адрес. Этим пользуются мошенники: пишут клиентам компании «от её имени» со счётом или ссылкой.

Поэтому почтовые сервисы не верят строке «От кого» на слово, а задают домену три вопроса:

  1. С этого ли сервера вы отправляете почту? Отвечает SPF.
  2. Ваша ли подпись стоит на письме? Отвечает DKIM.
  3. Что делать, если ответы не сошлись? Отвечает DMARC.

Все три ответа — это записи в DNS, то есть в настройках домена. Их добавляют там же, где вы указываете, на какой сервер ведёт адрес сайта: в личном кабинете регистратора или хостинга. Каждая запись — строка текста (тип записи называется TXT).

SPF: кому можно отправлять вашу почту

SPF — это список серверов, с которых приходят ваши настоящие письма. Получив письмо от вашего имени, почтовый сервис сверяется со списком. Сервера в нём нет — письмо подозрительное.

Если почта домена работает на Яндекс 360 и больше писем никто не отправляет, запись выглядит так:

v=spf1 redirect=_spf.yandex.net

Если письма отправляет ещё и сам сайт со своего сервера, его адрес добавляют в ту же запись:

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

Здесь 203.0.113.10 — пример: на его месте должен стоять адрес вашего сервера. Свою строку для SPF даёт в справке каждый почтовый сервис и сервис рассылок.

На чём обычно спотыкаются:

  • Забыли отправителя. Почта работает на Яндексе, и в списке только он. А заявки и уведомления о заказах отправляет сам сайт с сервера хостинга — и его в списке нет.
  • Сделали две записи. Подключили сервис рассылок и добавили вторую запись, а не дополнили первую. Найдя две, почтовый сервис не учитывает ни одну. Как объединить.
  • Запись разрослась. Чтобы её прочитать, почтовый сервис делает не больше десяти обращений; на одиннадцатом запись считается ошибочной. Как сократить.
  • Запись ничего не запрещает. В конце стоит +all или ?all — или нет ничего. Чем её закончить.

У SPF есть слабое место: пересылка. Если получатель настроил пересылку с одного ящика на другой, письмо приходит уже с чужого сервера, и проверка по списку не проходит. На этот случай есть вторая запись.

DKIM: подпись на каждом письме

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

Подпись едет вместе с письмом, поэтому обычную пересылку она переживает.

Включают её в настройках почтового сервиса: он показывает готовую запись, а вы добавляете её в настройки домена. У Яндекс 360, например, это запись с именем mail._domainkey.

Подпись у каждого отправителя своя: у почтового сервиса, у сервиса рассылок, у самого сайта.

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

DMARC: что делать с письмом, которое не прошло проверку

SPF и DKIM только отвечают на вопросы. Что делать с письмом, которое проверку не прошло, почтовый сервис без подсказки решает сам. DMARC — это ваша подсказка: правило, записанное в настройках домена под именем _dmarc.

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

Главное в нём — часть после p=:

Значение Что почтовый сервис делает с подделкой
p=none Ничего: только присылает вам отчёты
p=quarantine Кладёт в спам
p=reject Не принимает

Адрес после rua= — куда присылать отчёты: по ним видно, кто отправляет письма от вашего имени и проходят ли проверку ваши собственные.

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

Если у домена правила нет, начните со страницы «Нет DMARC-записи».

Чего требуют почтовые сервисы

Сервис Что требует от отправителей
Gmail С февраля 2024 года от всех — SPF или DKIM. От тех, кто шлёт на Gmail от 5000 писем в день, — SPF, DKIM и DMARC; достаточно p=none
Яндекс Почта Для рассылок подпись DKIM и запись SPF обязательны, DMARC рекомендован
Почта Mail.ru Для рассылок должны быть настроены SPF, DKIM и DMARC, и письма должны проходить все три проверки

Правила написаны прежде всего для рассылок, но проверяют эти записи у каждого письма — у счёта и у ответа клиенту тоже.

Частая ловушка: сайт пишет «от имени» ящика на Mail.ru

Компания ведёт переписку с ящика вроде magazin@mail.ru. Разработчик вписывает этот адрес в настройки сайта как отправителя, и уведомления о заказах уходят с сервера хостинга с адресом Mail.ru в строке «От кого».

Для почтовых сервисов это выглядит как подделка: письмо «от Mail.ru» пришло не с серверов Mail.ru. А у доменов mail.ru, bk.ru, list.ru и inbox.ru стоит самое строгое правило, p=reject, — такие письма просят не принимать совсем. Google тоже прямо предупреждает: не подставляйте адрес Gmail как отправителя, если отправляете не через Gmail.

Что делать: сайт должен писать с адреса на вашем собственном домене — например, zakaz@ваш-сайт.ru, — и у этого домена должны быть настроены все три записи. А чтобы ответы клиентов приходили в привычный ящик, его указывают в письме как адрес для ответа.

В каком порядке настраивать

  1. Выпишите всех, кто отправляет письма от вашего домена. Почтовый сервис, сам сайт, сервис рассылок, CRM, сервис онлайн-записи. Это самый важный шаг: забытый отправитель потом окажется в спаме.
  2. SPF. Одна запись, в ней все отправители из списка, в конце ~all.
  3. DKIM. Включите подпись у каждого отправителя и добавьте их записи в настройки домена.
  4. Проверьте письмом. Отправьте себе на Gmail письмо от каждого отправителя — в том числе заявку с сайта — и посмотрите «Показать оригинал».
  5. DMARC в режиме наблюдения, p=none, с адресом для отчётов: он ничего не блокирует.
  6. Через несколько недель ужесточите правило. Если ваши настоящие письма проходят проверку, переходите к p=quarantine, а потом к p=reject.

Не начинайте сразу с p=reject: если какой-то отправитель забыт, его письма перестанут доходить совсем.

Изменения в настройках домена расходятся по интернету не мгновенно: от нескольких минут до суток.

Чего записи не решают

Три записи доказывают, что письмо ваше. Желанным они его не делают: если получатели нажимают «Это спам», письма окажутся в спаме и с безупречными настройками.

И ещё одно. Если с адресов на вашем домене никто не пишет — вы переписываетесь с ящика на Яндексе или Gmail, а сайт писем не отправляет, — настраивать нечего.

Как узнать, что с вашим доменом

Все три записи видны снаружи, поэтому проверить их можно, не заходя ни в какие кабинеты. Проверка SPF и проверка DMARC показывают, какие записи есть у домена и нет ли в них ошибок.

С DKIM есть оговорка: имя записи с ключом выбирает почтовый сервис, и узнать его снаружи нельзя. Проверка смотрит самые распространённые имена. Если под ними ничего не нашлось, это ещё не значит, что подписи нет, — надёжнее письмо самому себе, как описано выше.

Проверьте свой сайт

Бесплатно и без регистрации: что не так с сайтом, доменом и почтой — простыми словами, за минуту.

Ещё в блоге