SPF란 무엇인가요?
SPF(Sender Policy Framework)는 RFC 7208에 정의된 이메일 인증 프로토콜입니다. 도메인 아래에 해당 도메인에서 메일을 보낼 수 있는 모든 IP 주소 또는 호스트 이름을 나열한 DNS TXT 레코드를 게시하는 방식으로 작동합니다. 수신 메일 서버가 귀하로부터 온 것이라고 주장하는 메시지를 받으면, DNS를 조회하여 발신 서버의 IP가 승인된 목록에 있는지 확인합니다.
SPF가 없으면 누구든지 이메일의 리턴 패스(봉투 발신인)를 위조하여 귀하의 도메인에서 온 것처럼 꾸밀 수 있으며, 이는 피싱 및 스팸 캠페인에서 흔히 사용되는 기법입니다.
SPF가 왜 필요한가요?
1스푸핑 방지
악의적인 행위자가 귀하의 도메인을 발신 주소로 위조하는 것을 차단합니다.
2도달률 향상
수신 서버가 승인된 발신자를 신뢰하게 되어 스팸 점수가 낮아집니다.
3DMARC 필수 조건
SPF는 DMARC가 정렬(Alignment)을 위해 의존하는 두 가지 메커니즘 중 하나입니다.
4평판 보호
승인되지 않은 발신자가 귀하 도메인의 발신 평판을 손상시키는 것을 방지합니다.
SPF 작동 원리 — 단계별 안내
승인된 IP 및 포함(include) 목록이 포함된 TXT 레코드를 `_your-domain.com`에 게시합니다.
귀하의 메일 서버가 이메일을 보냅니다. 이때 봉투(Envelope) "From" 주소에 귀하의 도메인이 담깁니다.
수신 서버는 발신 IP와 봉투 "From" 도메인을 추출합니다.
수신 서버는 귀하의 DNS에서 SPF 레코드를 조회하고 발신 IP가 목록에 있는지 확인합니다.
결과는 `pass`, `fail`, `softfail`, `neutral`, 또는 `permerror`로 나타나며, 이는 스팸 필터링 결정에 사용됩니다.
SPF 레코드 구문
v=spf1 ip4:203.0.113.10 include:_spf.google.com include:sendgrid.net -all메커니즘 분석
v=spf1— 버전, 항상 맨 처음에 위치ip4:— IPv4 주소/대역 승인ip6:— IPv6 주소/대역 승인include:— 다른 도메인의 SPF 설정을 상속a— 도메인의 A 레코드 IP 승인mx— 도메인의 MX 서버 승인redirect=— 다른 도메인의 전체 SPF로 위임한정자 (각 메커니즘 앞의 접두사)
+ (기본값)Pass — 승인됨-Fail — 승인되지 않은 발신자 거부~SoftFail — 의심스러운 것으로 표시하되 거부하지 않음?Neutral — 판단 유보일반적인 SPF 실패 및 해결 방법
DNS 조회 횟수 초과
include를 실제 IP로 대체하여 SPF 레코드를 평탄화(Flattening)하거나 SPF 평탄화 서비스를 사용하세요.
발신 서비스 누락
사용 중인 서비스(예: Mailchimp, Zendesk)의 include: 태그를 SPF 레코드에 추가하세요.
중복 SPF 레코드
v=spf1으로 시작하는 TXT 레코드는 단 하나만 허용됩니다. 여러 개라면 하나로 병합하세요.
이메일 전달(Forwarding)
전달 서버의 IP가 목록에 없기 때문에 전달 시 SPF가 깨집니다. 이는 DKIM으로 해결할 수 있습니다.
자주 묻는 질문(FAQ)
도메인을 대신해 이메일을 보낼 권한이 있는 IP 주소 목록이 담긴 DNS 레코드입니다. 이를 통해 사칭 및 피싱을 방지합니다.
SPF 검사 시 DNS 조회 횟수는 최대 10회로 제한됩니다. 이를 초과하면 'PermError'가 발생하며 인증이 실패합니다.
'~all'(SoftFail)은 인증 실패 시 수락하되 스팸으로 표시하도록 권장하고, '-all'(Fail)은 완전히 거부하도록 지시합니다.
구문 오류가 있거나 10회 조회 제한을 초과했을 때 발생합니다. 당사 체커로 구체적인 오류를 확인할 수 있습니다.
아니요, 하나의 도메인에는 'v=spf1'로 시작하는 레코드가 단 하나만 있어야 합니다. 여러 개가 있으면 인증이 실패합니다.
아니요, SPF는 'Return-Path'를 검증합니다. 보이는 'From' 주소를 보호하려면 DMARC가 필요합니다.