На этот вопрос уже есть ответ:
I Пытаюсь проверить почту, отправленную нашим сервером. При наших текущих настройках DNS при отправке почты с нашего сервера отображается ответ SPF Neutral .
Я попытался добавить комбинацию IP-адреса моего сервера и домена.
v=spf1 a mx ipv4:XXX.XX.XXX.XX -all
v=spf1 include:mydomain.com -all
Обе эти записи не показали изменений, вся почта, отправленная с сервера, оставалась нейтральной. Поэтому я попытался объединить все мои существующие записи SPF следующим образом:
v=spf1 a mx include:mydomain.com ipv4:XXX.XX.XXX.XX include:cmail1.com include:mail.zendesk.com -all
Я снова протестировал отправку почты и теперь получил ответ SPF Fail .
Я много искал в Интернете и не вижу, как исправить свои записи DNS, чтобы получить PASS для записей SPF. Я не знаю, нужны ли мне дополнительные CNAME, A, MX, или мне что-то совсем не хватает.
Я использую сервер Plesk с фиксированным IPv4-адресом и использую CloudFlare для управления своими DNS-серверами и серверами имен.
Вот как выглядит полный ответ об ошибке:
SPF: FAIL with IP XXX.XX.XXX.XX
spf=fail (google.com: domain of accounts@mydomain.com does not designate XXX.XX.XXX.XX as permitted sender) smtp.mailfrom=accounts@mydomain.com
Received-SPF: fail (google.com: domain of accounts@mydomain.com does not designate XXX.XX.XXX.XX as permitted sender) client-ip=XXX.XX.XXX.XX;
spf=fail (google.com: domain of accounts@mydomain.com does not designate XXX.XX.XXX.XX as permitted sender) smtp.mailfrom=accounts@mydomain.com
ИСПРАВЛЕНО. Я просто потратил целую вечность на разговоры со своим провайдером, и мы не могли понять, почему это не работает.
Будьте осторожны! Я скопировал свой код с сайта, на котором было сказано использовать ipv4, это должен быть ip4! (нет v)
Хотя исправление Вашей синтаксической ошибки (ipv4
вместо ip4
), кажется, исправило Вашу проблему, это все же не единственная проблема с Вашей записью SPF. Поэтому всегда полезно прочитать официальную документацию, чтобы понять проблему.
Первая, которую вы выяснили уже в своем вопросе методом проб и ошибок, но RFC 7208 3.2 - это источник, который ясно говорит об этом: вы должны объединить ваши правила SPF для одного имени хоста в единую запись TXT
.
Доменное имя НЕ ДОЛЖНО иметь несколько записей, которые вызовут проверку авторизации для выбора нескольких записей.
Вы должны понимать, что на самом деле делает механизм include
: указанный домен ищет совпадение, т.е. ищет больше SPF-правил. Ваш include:mydomain.com
предлагает попробовать использовать его как a
механизм. Если это в mydomain.com. TXT
, это ссылка, которая пытается включить себя!
Вы также должны пересмотреть все остальные включить
и увидеть, что они на самом деле имеют SPF запись. Вы должны включить только
существующие записи .
Предупреждение : Если домен не имеет действительной записи SPF, результатом будет следующее постоянная ошибка. Некоторые получатели почты будут отклонять сообщения на основании
PermError
.
Если ваш a
или mx
разрешается по тому же IP-адресу, что и ip4
, то они не нужны и их следует удалить. Перечислите сервер только один раз .
В конечном итоге, SPF-поиски разрешаются по IP-адресу.
Если IP-адрес сервера редко меняется, рассмотрите возможность использования
ip4:x.x.x.x
(илиip6
), чтобы получатели могли полностью избежать DNS поиска. Начиная с . есть ограничение в 10 DNS поисков на одну SPF запись, указывающее IP адрес или диапазон адресов предпочтительнее для длинных списков исходящей почты Часто запись в SPF может быть сжата до чего-то вродеv=spf1 ip4:x.x.x.x -all
, если есть только один исходящий почтовый сервер.
Чтение как связанных статей для синтаксиса SPF, так и распространённых ошибок, является действительно хорошим обзором всей темы. Связанный RFC добавляет все технические подробности, если вы также заинтересованы в том, как он работает
.