Настройка SPF, DKIM и DMARC для домена
Без SPF, DKIM и DMARC письма попадают в спам или отклоняются — особенно после февраля 2024, когда Google и Yahoo ввели обязательную проверку для отправителей более 5 000 писем в день. Настройка занимает 1–2 часа, но требует понимания механизма.
SPF — Sender Policy Framework
SPF-запись перечисляет серверы, которым разрешено отправлять письма от имени домена. Проверяется по IP отправляющего сервера.
DNS TXT-запись для example.com:
v=spf1 include:sendgrid.net include:amazonses.com ip4:203.0.113.10 ~all
Синтаксис механизмов:
-
include:domain— включить SPF-политику другого домена (для ESP) -
ip4:x.x.x.x— разрешить конкретный IP (собственный SMTP) -
~all— softfail (подозрительно, но не блокировать) -
-all— hardfail (блокировать всё остальное)
Важно: Максимум 10 DNS-lookup. include: триггерит lookup для каждого домена — если превысить, SPF сломается.
DKIM — DomainKeys Identified Mail
DKIM добавляет цифровую подпись к каждому письму. Получатель проверяет подпись по публичному ключу в DNS.
Генерация ключевой пары (для собственного SMTP/Postfix):
openssl genrsa -out dkim_private.pem 2048
openssl rsa -in dkim_private.pem -pubout -out dkim_public.pem
DNS TXT-запись:
default._domainkey.example.com TXT "v=DKIM1; k=rsa; p=<base64-public-key>"
Для ESP (Resend, SendGrid, Mailgun) — они сами генерируют пару и дают вам готовые DNS-записи через дашборд.
DMARC — Domain-based Message Authentication
DMARC определяет политику для писем, не прошедших SPF/DKIM:
_dmarc.example.com TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]; ruf=mailto:[email protected]; pct=100; adkim=r; aspf=r"
Параметры:
-
p=none— только мониторинг, ничего не блокировать -
p=quarantine— помещать в спам -
p=reject— отклонять -
rua— адрес для агрегированных отчётов (ежедневно, XML) -
pct=100— применять политику к 100% писем
Стратегия внедрения:
# Шаг 1 — мониторинг
p=none; rua=mailto:[email protected]
# Шаг 2 — через 2 недели, убедившись что легитимные письма проходят
p=quarantine; pct=10; rua=mailto:[email protected]
# Шаг 3 — финальная политика
p=reject; pct=100; rua=mailto:[email protected]
BIMI — Brand Indicators for Message Identification
Логотип в inbox Gmail/Apple Mail — дополнительная настройка после DMARC p=quarantine/reject:
default._bimi.example.com TXT "v=BIMI1; l=https://example.com/logo.svg; a=https://example.com/bimi.pem"
Логотип должен быть в формате SVG Tiny 1.2. Apple Mail требует VMC-сертификат от DigiCert/Entrust.
Проверка настроек
-
MXToolbox —
mxtoolbox.com/spf.aspx,/dkim.aspx,/dmarc.aspx - mail-tester.com — отправить тестовое письмо, получить score
- Google Postmaster Tools — мониторинг репутации домена и IP в Gmail
- DMARC-аналитика — Valimail, Dmarcian, Postmark DMARC
Частые проблемы
SPF PermError (too many DNS lookups): Использовать SPF Flattening — заменить include: на конкретные IP-адреса через сторонние сервисы (AutoSPF, EasyDMARC).
DKIM verify failed: Проверить, что ESP настроен на подпись с нужным selector и CNAME-записи добавлены в DNS.
DMARC не работает: SPF и DKIM должны проходить выравнивание (alignment) — домен в From: должен совпадать с envelope-from (SPF) или d= в DKIM-подписи.
Сроки
Настройка SPF + DKIM + DMARC + проверка — 1 день. С постепенным переходом на p=reject и мониторингом — 1–2 недели наблюдений.







