원격받는 사람 도메인이 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”결과를 생성합니다.