При организации регулярных email-рассылок одна из ключевых задач — обеспечить доставку писем в папку «Входящие» у получателей, а не в спам или раздел с отложенными сообщениями. На корректность этой доставки влияет большой набор параметров, включая репутацию отправительского IP-адреса, качество контента рассылок, настройки списков рассылки и подтверждение права домена на отправку сообщений. Для последней цели используются специальные DNS-записи, совокупность которых называется SPF, DKIM и DMARC. Без этих механизмов почтовые сервисы не могут достоверно определить, что письмо отправлено легальным владельцем домена, что часто приводит к отклонению сообщений еще на этапе доставки или их автоматической сортировке в спам.
Все три механизма работают совместно, каждый из них закрывает свою часть задачи по верификации отправителя. SPF отвечает за проверку того, что письмо отправлено с разрешенного для домена сервера, DKIM добавляет к сообщению неподделываемую цифровую подпись, а DMARC согласовывает работу этих двух систем и задает правила обработки писем, не прошедших проверку. Настройка каждого из них требует внесения изменений в DNS-зону вашего домена, а также последующей проверки корректности работы через отправку тестовых писем. Рекомендуется выполнять настройку в последовательности: сначала SPF, затем DKIM и в завершение DMARC. После добавления каждой записи дождитесь полного обновления DNS — этот процесс может занимать от нескольких минут до 48 часов в зависимости от настроек TTL ваших записей.
Принцип работы и настройка SPF
SPF (Sender Policy Framework) — это первая из трех записей, которую рекомендуется настроить для домена, используемого для исходящей почты. Запись имеет тип TXT и публикуется в корневой зоне домена (например, для домена example.ru запись добавляется напрямую в зону example.ru, а не в поддомен). Значение SPF-записи начинается с обязательной строки v=spf1, за которой следует перечень разрешенных отправителей. В качестве механизмов указываются IP-адреса ваших почтовых серверов (через директивы ip4 для IPv4 и ip6 для IPv6), а также адреса сторонних сервисов, которые отправляют письма от вашего имени (через директиву include, например, include:_spf.google.com для Gmail или include:_spf.mailer.by для сервиса рассылок). В конце записи указывается директива, задающая правило для всех остальных отправителей, не перечисленных в записи: -all означает жесткий отказ в доставке писем от неавторизованных адресов, ~all — мягкий отказ, при котором почтовый сервис может принять решение о доставке самостоятельно.
При формировании SPF-записи важно учитывать ограничение на количество DNS-запросов: сумма всех include, а также запросов для механизмов ip4/ip6 и других директив не должна превышать 10. При превышении этого лимита проверка SPF автоматически завершается ошибкой, даже если все указанные серверы действительно авторизованы. Если вы используете несколько сторонних сервисов для рассылок, рекомендуется объединить их включения через одну запись на стороне сервиса, чтобы сократить количество запросов. После добавления SPF-записи в DNS отправьте тестовое письмо на ящик с поддержкой проверки SPF (например, Gmail или Яндекс.Почта), откройте исходный код письма и найдите строку с результатом проверки SPF: если там указано spf=pass, запись работает корректно.
Настройка DKIM для цифровой подписи писем
DKIM (DomainKeys Identified Mail) решает задачу подтверждения того, что содержимое письма не было изменено после отправки, и что оно действительно отправлено владельцем указанного домена. Механизм работает на основе асимметричной криптографии: при настройке генерируется пара ключей, закрытый ключ хранится на стороне сервиса, который отправляет письма, и никогда не передается вам, а открытый ключ добавляется в DNS-запись вашего домена. При отправке каждого письма сервис добавляет к нему цифровую подпись, созданную на основе закрытого ключа, а почтовый сервис получателя проверяет эту подпись по открытому ключу из DNS-записи. Если подпись совпадает, проверка проходит успешно, если нет — письмо помечается как подозрительное.
DKIM-запись также имеет тип TXT, но размещается не в корневой зоне домена, а в поддомене с именем селектора, который указывает сервис рассылок. Полное имя записи выглядит как [имя_селектора]._domainkey.[ваш_домен], например, mailer._domainkey.example.ru. Значение записи содержит информацию о типе ключа (обычно RSA) и сам открытый ключ длиной от 1024 до 2048 бит (рекомендуется использовать ключи длиной 2048 бит для большей безопасности). При настройке вам нужно только скопировать значение открытого ключа, которое предоставляет сервис рассылок, и добавить его в соответствующую TXT-запись в панели управления DNS вашего домена. После обновления DNS снова отправьте тестовое письмо и проверьте заголовки: в поле DKIM-Signature должно быть указано dkim=pass.
Особенности настройки и использования DMARC
DMARC (Domain-based Message Authentication, Reporting and Conformance) является связующим звеном между SPF и DKIM, и позволяет не только проверять корректность этих двух механизмов, но и задавать единые правила обработки писем, не прошедших хотя бы одну из проверок. Кроме того, DMARC дает возможность получать регулярные отчеты о всех попытках отправки писем от имени вашего домена, что помогает выявить несанкционированную отправку спама под вашим брендом. Запись DMARC также имеет тип TXT и размещается в поддомене _dmarc вашего домена (полное имя: _dmarc.[ваш_домен]).
Основные параметры DMARC-записи: v=DMARC1 (обязательная строка, указывающая версию протокола), p (политика обработки неудачных проверок: none — только отправка отчетов, без блокировки писем, quarantine — отправка писем в папку спам получателя, reject — полный отказ в доставке писем), rua (адрес электронной почты, на который будут приходить агрегированные отчеты о доставке писем, формат mailto:адрес@вашдомен.ru), ruf (адрес для получения детальных отчетов о неудачных проверках) и fo (параметр, указывающий, при каком типе ошибки отправлять отчет: 0 — при ошибке SPF или DKIM, 1 — при любой ошибке любой из проверок). Для первоначальной настройки рекомендуется использовать политику p=none, чтобы собрать отчеты в течение 1–2 недель и убедиться, что все ваши сервисы для отправки писем проходят проверки SPF и DKIM корректно. Только после этого можно переходить к более строгим политикам quarantine или reject.
После завершения настройки всех трех механизмов важно регулярно проверять отчеты DMARC, чтобы отслеживать попытки несанкционированной отправки писем от вашего домена. Если в отчетах появляются IP-адреса, которые вы не узнаете, это может сигнализировать о том, что злоумышленники подделывают адрес вашего домена для рассылки спама. В этом случае стоит добавить эти IP-адреса в черный список на стороне вашего почтового сервиса или обратиться к регистратору домена для блокировки поддельных записей. Также стоит периодически перепроверять SPF и DKIM записи, особенно если вы начинаете использовать новые сервисы для отправки писем, чтобы не допустить превышения лимита DNS-запросов в SPF или устаревания DKIM-ключей.
Важно понимать, что корректно настроенные SPF, DKIM и DMARC не являются гарантией 100% доставки писем в папку «Входящие». Помимо этих технических параметров, на доставляемость влияет репутация домена и отправительских IP-адресов, отсутствие жалоб от получателей, соответствие контента рассылок требованиям почтовых сервисов и отсутствие признаков спама в тексте и теме писем. Однако наличие рабочих записей для всех трех механизмов является базовым техническим требованием для большинства крупных почтовых сервисов, и значительно повышает шансы на успешную доставку сообщений.
