Я пытаюсь проверить почту, отправленную нашим сервером. При наших текущих настройках DNS при отправке почты с нашего сервера отображается SPF нейтральный ответ.
Я попытался добавить комбинацию 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
, это ссылка, которая пытается включить себя!
Вам также следует пересмотреть все остальные include
s и убедитесь, что у них действительно есть запись SPF. Вам следует только include
существующие записи.
Предупреждение: Если в домене нет действующей записи 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 добавляет все технические детали, если вам также интересно, как это работает.