보낸 이메일이 스팸함으로 가는 진짜 이유 — SPF·DKIM·DMARC 3분 정리
도달율 문제의 8할은 인증 설정에서 갈립니다. 받는 메일 서버가 발신자를 어떻게 검증하는지, 세 가지 표준을 실무 관점에서 정리합니다.
정성껏 쓴 메일이 받는 사람의 스팸함으로 직행하면 캠페인 전체가 무의미해집니다. 그리고 이 문제의 상당 부분은 콘텐츠가 아니라 발신 도메인 인증 설정에서 갈립니다.
받는 메일 서버 입장에서 생각해 보면 단순합니다. “이 메일이 정말 그 도메인에서 보낸 게 맞나?”를 확인할 방법이 필요하고, 그 확인 장치가 바로 SPF·DKIM·DMARC 세 가지입니다.
SPF — 누가 이 도메인 이름으로 보낼 수 있나
SPF는 “내 도메인 이름으로 메일을 보낼 자격이 있는 발신 서버(IP) 목록”을 DNS에 공개해 두는 표준입니다. 받는 서버는 메일이 도착하면 그 발신 IP가 목록에 있는지 대조합니다.
- 목록에 있으면 통과
- 없으면 “사칭 가능성”으로 감점
실무에서 가장 흔한 실수는 발송 경로를 바꾸거나 추가하고도 SPF 레코드를 업데이트하지 않는 것입니다. 새 발송 IP가 목록에 없으면 멀쩡한 메일도 스팸으로 분류됩니다.
DKIM — 내용이 중간에 위조되지 않았나
SPF가 “발신 자격”을 본다면, DKIM은 메일 본문·헤더에 디지털 서명을 붙여 “전송 도중 내용이 변조되지 않았음”을 증명합니다. 발신 측은 비공개 키로 서명하고, 받는 측은 DNS에 공개된 키로 검증합니다.
서명이 깨지면(=중간에 변조됐거나 설정이 틀렸으면) 신뢰 점수가 떨어집니다. DKIM은 한 번 제대로 셋업하면 안정적이지만, 키 길이가 짧거나 키 로테이션을 방치하면 약점이 됩니다.
DMARC — SPF·DKIM이 실패하면 어떻게 할까
DMARC는 위 두 검증이 실패했을 때 받는 서버가 어떻게 처리해야 하는지에 대한 발신자의 정책입니다. 동시에 “누가 내 도메인을 사칭하고 있는지”에 대한 리포트를 받아볼 수 있게 해 줍니다.
정책은 보통 세 단계로 갑니다.
| 정책 | 의미 | 권장 단계 |
|---|---|---|
p=none | 모니터링만 (처리는 그대로) | 초기 — 리포트로 현황 파악 |
p=quarantine | 실패 시 스팸함으로 | 정렬 검증 후 |
p=reject | 실패 시 수신 거부 | 사칭 완전 차단 단계 |
핵심은 정렬(alignment) 입니다. SPF·DKIM이 각각 통과하는 것만으로는 부족하고, 그 인증에 쓰인 도메인이 실제 발신 주소(From) 도메인과 일치해야 DMARC를 통과합니다. 이 정렬이 어긋나 있으면 “SPF도 통과, DKIM도 통과인데 왜 스팸이지?”라는 상황이 생깁니다.
정리 — 세 개는 한 세트입니다
- SPF: 보낼 자격이 있는 서버인가
- DKIM: 내용이 위조되지 않았나
- DMARC: 위 둘이 실패하면 어떻게 하고, 누가 사칭하는지 리포트
세 가지가 서로 정렬되게 설정돼 있어야 도달율이 안정적으로 올라갑니다. 하나라도 빠지거나 어긋나 있으면, 콘텐츠를 아무리 다듬어도 스팸함을 벗어나기 어렵습니다.
본인 도메인의 인증 상태는 공개된 검증 도구로 직접 확인할 수 있습니다 — DMARC 리포트를 며칠만 받아 봐도 현재 어디서 새고 있는지 대부분 드러납니다.