Skip to content

This article is available in Russian. An English version is on the way.Open the Russian page

SPF, DKIM и DMARC: чтобы письма не попадали в спам

Какие DNS-записи нужны домену для отправки почты через внешний сервис, как их проверить и почему PTR сервера здесь не важен.

Level
Intermediate
Reading time
3 min read
Updated
Tested on
Ubuntu 22.04, Ubuntu 24.04, Debian 12
Contents
  1. SPF — кто может отправлять
  2. DKIM — подпись письма
  3. DMARC — что делать с поддельными письмами
  4. А как же PTR?
  5. Почтовые ящики на домене
  6. Проверьте результат
  7. Частые ошибки

Почтовые системы проверяют, имеет ли отправитель право слать письма от имени вашего домена. Без этих проверок письма попадают в спам или отклоняются. Все записи добавляются в DNS домена у регистратора или DNS-хостинга.

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

TXT-запись на самом домене со списком разрешённых отправителей. Строку include сервис отправки указывает в своей инструкции:

TXT для example.com
v=spf1 include:spf.mail-provider.example ~all

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

Сервис подписывает каждое письмо своим ключом, а публичную часть вы публикуете в DNS. Сервис выдаст имя записи с селектором и значение — обычно это TXT или CNAME вида selector._domainkey.example.com. Копируйте значения полностью, без лишних пробелов и кавычек.

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

TXT-запись на поддомене _dmarc. Начните с режима наблюдения: письма не блокируются, а вам приходят отчёты.

TXT для _dmarc.example.com
v=DMARC1; p=none; rua=mailto:dmarc@example.com

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

А как же PTR?

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

Почтовые ящики на домене

Если вы принимаете почту на домене, MX-записи указывают на почтовый хостинг, а не на VPS. SPF в этом случае включает и хостинг, и сервис отправки.

Проверьте результат

bash
$ dig +short TXT example.com$ dig +short TXT _dmarc.example.com$ dig +short TXT selector._domainkey.example.com$ dig +short MX example.com

Замените selector на селектор из инструкции сервиса. Если dig не установлен: apt install -y dnsutils. Затем отправьте себе письмо и проверьте в заголовках Authentication-Results: spf=pass, dkim=pass, dmarc=pass.

Частые ошибки

  • Две SPF-записи на домене — проверка SPF завершается ошибкой для обеих.
  • Имя записи продублировано: в панели DNS ввели selector._domainkey.example.com, и панель дописала домен ещё раз. Во многих панелях достаточно ввести selector._domainkey.
  • Сразу поставили p=reject — часть легитимной почты (например, из CRM) начала отклоняться. Начинайте с p=none.

Read to the end and the article counts toward your learning progress.

  • почта
  • spf
  • dkim
  • dmarc
  • dns
  • спам

Was this article helpful?