Настройка правильной SPF записи
Очень часто сталкиваюсь с проблемой не правильно настроенных SPF записей. Клиент жалуется, что у некоторых получателей, письма попадают в спам. При этом администратор утверждает, что SPF запись правильная.
Сначала я думал, что это частный случай, но через месяц понял, что случай далеко не редкий.
Итак, что же не так в записи? Давайте попробуем разобраться.
Собираем техническую информацию
Запрашиваем текущию MX запись для домена:
host -t MX example.com
Для примера я буду разбирать случай с яндексом:
example.com mail is handled by 10 mx.yandex.ru.
Почта домена припаркована к яндексу. А что говорит SPF запись?
host -t TXT example.com
example.com descriptive text «v=spf1 a mx include:_spf.hosting.reg.ru ~all»
В заголовках почтового сообщения смотрим с какого почтового сервера пришло письмо:
client-ip=37.140.190.203; helo=forward501o.mail.yandex.net;
PTR запись, да и сам адрес принадлежит яндексу. Проверяем MX запись:
host -t A mx.yandex.net.
mx.yandex.net has address 77.88.21.249
И теперь вспоминаем. MX запись — это сервер который принимает почтовые сообщения, а не сервер который эти сообщения должен отправлять!
У вас, скорее всего, 1 сервер принимает и отправляет сообщения, поэтому вы указываете MX в SPF записи. Но в случае с крупными почтовыми сервисами, список этих адресов может заметно отличаться, и динамически меняться.
Правильная запись
Вы можете не удалять старые SPF записи. Достаточно приписать новые сервера отправки. Для разных почтовых сервисов они могут быть разными.
Для mail.ru
include:_spf.mail.ru
Для google
include:_spf.google.com
Для яндекса
include:_spf.yandex.net
И результирующей SPF записью, для моего примера, должна быть:
host -t TXT example.com
example.com descriptive text «v=spf1 a include:_spf.hosting.reg.ru include:_spf.yandex.net ~all»
Тем самым вы разрешите отправку писем с почтовых серверов рег.ру и яндекса, а так же со всех А записей домена.