Когда в 1980-х проектировали протокол электронной почты SMTP, механизма проверки отправителя в нём не было. В поле From: можно было написать любой адрес — этим до сих пор пользуются фишеры. SPF, DKIM и DMARC — три слоя защиты, добавленные позже, и все три настраиваются в DNS-записях вашего домена.
Почему письма попадают в спам
Почтовый сервер получателя (Gmail, Яндекс Почта, Mail.ru, Outlook) для каждого письма по сути задаёт три вопроса:
- Имеет ли сервер-отправитель право отправлять письма от имени этого домена? (SPF)
- Не изменено ли письмо в пути и действительно ли оно подписано этим доменом? (DKIM)
- Что, по мнению владельца домена, делать, если проверки не пройдены? (DMARC)
Если ответ «неизвестно» или «нет», письмо попадает в спам или вообще не доставляется. Первыми страдают письма из сторонних сервисов: уведомления формы обратной связи на сайте, заказы интернет-магазина, рассылки через сервисы email-маркетинга, письма из CRM.
Требования крупных почтовых сервисов
С февраля 2024 года Google и Yahoo ввели обязательные правила для отправителей. Для всех: SPF или DKIM, корректные обратные DNS-записи, низкий уровень жалоб на спам. Для массовых отправителей (более 5 000 писем в день на адреса Gmail) дополнительно: SPF и DKIM, запись DMARC (минимум p=none), выравнивание домена From: с SPF или DKIM, отписка в один клик и уровень жалоб ниже 0,3 %.
С 5 мая 2025 года аналогичные требования для отправителей более 5 000 писем в день ввела Microsoft (Outlook.com, Hotmail, Live): несоответствующие письма отклоняются с ошибкой 550 5.7.515.
Российские сервисы — Mail.ru и Яндекс — тоже проверяют SPF, DKIM и DMARC и учитывают их в фильтрации. Для анализа доставляемости писем на ящики Mail.ru есть сервис Postmaster Mail.ru, где видно, сколько писем попадает во входящие и в спам.
SPF: кто может отправлять от имени домена
SPF (Sender Policy Framework) — список серверов, которым разрешено отправлять почту от имени домена. Это TXT-запись на корневом домене:
v=spf1 include:_spf.yandex.net include:_spf.google.com ~all
v=spf1— признак SPF-записи.include:— подключает SPF-список другого сервиса (Яндекс 360, Google Workspace, Microsoft 365, сервис рассылок).ip4:/ip6:— разрешает конкретный IP, например сервер вашего сайта.~allв конце — «остальные подозрительны» (softfail),-all— «строго отклонять» (fail).
Значения include берите из документации своего почтового провайдера — у каждого сервиса они свои.
Частые ошибки:
| Ошибка | Результат | Решение |
|---|---|---|
Две записи v=spf1 |
SPF полностью недействителен | Объединить в одну |
Больше 10 DNS-запросов (цепочка include) |
permerror |
Убрать неиспользуемые сервисы |
+all |
Отправлять от вашего имени может кто угодно | Использовать ~all или -all |
| Не добавлен сервер сайта | Уведомления с сайта уходят в спам | Добавить ip4: хостинга или его include |
DKIM: письмо не подделано
DKIM (DomainKeys Identified Mail) добавляет к каждому исходящему письму цифровую подпись, сделанную закрытым ключом сервера. Получатель проверяет подпись, найдя открытый ключ в DNS. Ключ публикуется под именем селектора:
mail._domainkey.example.ru TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqh..."
Ключ DKIM вы не создаёте сами: его выдаёт почтовый сервис. В Яндекс 360 он находится в настройках домена в разделе почты (DKIM-подпись), в Google Workspace — в консоли администратора (Gmail → Аутентификация почты), в Microsoft 365 — в Defender. Каждый отправляющий сервис использует свой селектор, поэтому несколько DKIM-записей у одного домена — это нормально.
DMARC: что делать при неудаче
DMARC связывает SPF и DKIM в единую политику. Он делает две вещи: говорит получателю, что делать с письмами, не прошедшими проверку, и включает отчёты для владельца домена. Это TXT-запись на поддомене _dmarc:
_dmarc.example.ru TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.ru"
| Политика | Значение | Когда |
|---|---|---|
p=none |
Только наблюдать и присылать отчёты | Первая настройка, 2–4 недели |
p=quarantine |
Отправлять непрошедшие в спам | Когда отчёты чистые |
p=reject |
Отклонять непрошедшие | Когда все источники проверены |
Чтобы DMARC был пройден, хотя бы одна из проверок — SPF или DKIM — должна не только пройти, но и быть выровнена (aligned) с доменом в адресе From:. Например, если рассылка уходит с сервера сервиса рассылок и подписана его доменом, а не вашим, DMARC не пройдёт — нужно настроить в сервисе подпись DKIM для своего домена.
Отчёты DMARC приходят в формате XML и читать их вручную неудобно. Используйте бесплатные анализаторы отчётов или выделите для них отдельный ящик.
Пошаговая настройка
- Проверьте текущее состояние. Введите домен в проверку SPF и DMARC и посмотрите, каких записей не хватает.
- Составьте список всех отправителей. Корпоративная почта (Яндекс 360, Google, Microsoft, Mail.ru для бизнеса), сервер сайта (формы), сервис рассылок, интернет-магазин, CRM, 1С.
- Создайте одну SPF-запись и добавьте
includeдля каждого сервиса. - Включите DKIM в каждом сервисе и добавьте выданные записи в DNS.
- Опубликуйте DMARC с
p=noneи несколько недель изучайте отчёты. - Ужесточите политику: сначала
quarantine, затемreject. - Проверьте записи: через проверку DNS убедитесь, что TXT-записи опубликованы и видны.
Пример для небольшой компании
Компания использует Яндекс 360 для почты, сайт на хостинге с IP 203.0.113.10 (отправляет уведомления о заявках) и сервис рассылок. Итоговый набор записей:
example.ru TXT "v=spf1 include:_spf.yandex.net ip4:203.0.113.10 include:<spf-сервиса-рассылок> ~all"
mail._domainkey TXT "v=DKIM1; k=rsa; p=..." (из Яндекс 360)
<селектор>._domainkey CNAME/TXT ... (из сервиса рассылок)
_dmarc TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.ru"
Через месяц, если отчёты показывают, что все письма проходят проверку, политика меняется на p=quarantine.
Чек-лист
- У домена одна запись
v=spf1, в пределах лимита 10 DNS-запросов. - DKIM включён в каждом сервисе, который отправляет письма.
- Есть запись
_dmarcминимум сp=noneи адресом для отчётов. - Форма на сайте отправляет письма через SMTP вашего домена, а не через PHP
mail(). - Для массовых рассылок есть отписка в один клик.
- Срок регистрации домена и его DNS-провайдер известны — это можно проверить через WHOIS.
Про сами DNS-записи — A, MX, TXT, CNAME — подробно рассказано в гайде DNS-записи простыми словами.