Почтовые системы проверяют, имеет ли отправитель право слать письма от имени вашего домена. Без этих проверок письма попадают в спам или отклоняются. Все записи добавляются в DNS домена у регистратора или DNS-хостинга.
SPF — кто может отправлять
TXT-запись на самом домене со списком разрешённых отправителей. Строку include сервис отправки указывает в своей инструкции:
v=spf1 include:spf.mail-provider.example ~allDKIM — подпись письма
Сервис подписывает каждое письмо своим ключом, а публичную часть вы публикуете в DNS. Сервис выдаст имя записи с селектором и значение — обычно это TXT или CNAME вида selector._domainkey.example.com. Копируйте значения полностью, без лишних пробелов и кавычек.
DMARC — что делать с поддельными письмами
TXT-запись на поддомене _dmarc. Начните с режима наблюдения: письма не блокируются, а вам приходят отчёты.
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 в этом случае включает и хостинг, и сервис отправки.
Проверьте результат
$ 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.