설정했는데 왜 안 먹을까 — 10회 제한
SPF의 include, a, mx 같은 항목은 하나하나가 DNS 조회를 일으킵니다. 그리고 이 조회 횟수가 10회를 넘으면 규격상 SPF 전체가 무효(permerror)로 처리됩니다. 메일 서비스를 여러 개 붙이다 보면 쉽게 넘어가는데, 겉으로는 레코드가 멀쩡해 보여서 발견이 늦습니다. 이 검사는 조회 횟수를 세어 드립니다.
끝맺음이 중요하다
레코드 마지막의 ~all 은 "목록에 없으면 의심", -all 은 "목록에 없으면 거부"입니다. +all 로 끝나면 누구나 통과하므로 SPF가 있으나 마나입니다. 메일을 전혀 보내지 않는 도메인이라면 v=spf1 -all 한 줄이 가장 안전합니다.
SPF만으로는 부족하다
SPF는 봉투의 발신 서버만 검사하고, 사용자에게 보이는 보내는 사람 주소는 검사하지 않습니다. 그래서 DMARC를 함께 설정해야 사칭이 실제로 막힙니다.