Домен удаленного получателя отклоняет почту на основании SPF, и я думаю, это потому, что отправитель настроил SPF неправильно.
Когда я запускаю копать, я вижу:
[fooadm@box ~]# dig @8.8.8.8 -t TXT foosender.com
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> @8.8.8.8 -t TXT foosender.com
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30608
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;foosender.com. IN TXT
;; ANSWER SECTION:
foosender.com. 14039 IN TXT "v=spf1 include:spf.foo1.com -all"
foosender.com. 14039 IN TXT "v=spf1 include:_spf.bob.foo2.com -all"
;; Query time: 26 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Jan 7 09:45:38 2014
;; MSG SIZE rcvd: 146
Это действительная установка? Мне кажется странным, что есть две отдельные записи (каждая с серьезными ошибками). Разве все не должно быть в одной записи?
Я ожидаю, что правильная запись TXT будет:
v=spf1 include:spf.foo1.com include:_spf.bob.foo2.com -all
Нет. Вы правы. Видеть RFC 4408, раздел 4.5.
Записи, которые не начинаются с раздела версии точно "v = spf1", отбрасываются. Обратите внимание, что раздел версии заканчивается либо символом SP, либо концом записи. Запись с разделом версии "v = spf10" не соответствует и должна быть удалена.
Если в наборе есть записи типа SPF, то все записи типа TXT отбрасываются.
После вышеуказанных шагов должна остаться ровно одна запись, и можно будет продолжить оценку. Если осталось две или более записей, check_host () немедленно завершает работу с результатом «PermError».
Если совпадающие записи не возвращаются, клиент SPF ДОЛЖЕН предполагать, что домен не делает никаких объявлений SPF. Обработка SPF ДОЛЖНА прекратиться и
верните «Нет».
Эта настройка SPF недействительна. Если найдено несколько записей, выбор записи должен привести к ошибке. Видеть RFC 7208, раздел 4.5 по отбору записей:
Если результирующий набор записей включает более одной записи, check_host () выдает результат "permerror".