snailworkmail
← 가이드 전체

MX·SPF·DKIM·DMARC 5분 정리

레코드 네 개, 역할 네 개. 각각 무슨 일을 하고 왜 생겼으며 잘못되면 무엇이 깨지는지.

Updated 2026-08-30

이 네 개가 헷갈리는 건 이름이 비슷해서 서로 관련 있어 보이는데 실제로는 아니기 때문이다. 각각 다른 문제를 풀고, 인터넷의 모두가 서로를 믿던 시절에 설계된 프로토콜의 구멍을 메우려고 수십 년에 걸쳐 따로따로 만들어졌다.

MX — 메일이 어디로 가는가

넷 중 유일하게 수신에 관한 것이다. 도메인을 그 메일을 받아주는 서버에 연결한다. 없으면 발신자가 배달할 곳이 없어 반송되고, 잘못되어 있으면 내가 통제하지 않는 곳으로 간다.

SPF — 누가 보낼 수 있는가

내 도메인 이름으로 보낼 수 있는 서버 목록을 공개해 두는 것이다. 받는 서버가 접속해 온 IP를 이 목록과 대조한다. 맹점은 SPF가 봉투(envelope)의 발신자를 검사한다는 점인데, 그건 사람이 보는 From: 주소와 다른 경우가 많다. 그 틈 때문에 DKIM과 DMARC가 있어야 했다.

DKIM — 중간에 변조되지 않았다는 증거

업체가 개인 키로 발신 메일에 서명하고, 짝이 되는 공개 키는 내 DNS에 있다. 받는 쪽이 서명을 검증한다. SPF와 달리 전달(포워딩)을 견디고, 본문이 도중에 바뀌지 않았음을 증명한다.

DMARC — 검사가 실패하면 어떻게 할까

DMARC는 앞의 둘을 눈에 보이는 From: 주소와 묶고 — 이 개념을 정렬(alignment)이라 한다 — 실패했을 때 받는 쪽이 무엇을 할지 알려준다.

  • p=none — 아무것도 하지 말고 리포트만 보내라
  • p=quarantine — 스팸함으로
  • p=reject — 아예 거절

SPF를 통과하고도 DMARC에 실패할 수 있다는 게 여기서 가장 헷갈리는 대목이다. 봉투 발신자가 bounces.provider.com이고 From:you@mybrand.com이면, SPF는 그 업체에 대해 통과하지만 내 도메인과 정렬되지는 않는다. d=mybrand.com으로 서명된 DKIM이 이걸 구해준다 — DKIM을 건너뛰면 안 되는 이유가 이것이다.

무엇이 깨지는가, 흔한 순서대로

실수결과
SPF 레코드가 두 개영구 오류 — 합쳐지지 않고 SPF가 통째로 무시된다
DKIM CNAME을 일부만 추가서명이 아예 안 붙는다. 업체가 요구한 전부가 필요하다
p=reject를 너무 일찍내 정당한 메일이 소리 없이 사라진다
MX를 옛 업체에 그대로 둠이제 읽지 않는 곳으로 메일이 배달된다

내 도메인으로 이메일을 시작하세요

무료로 시작. 카드 등록 없음. 도메인 연결까지 10분 정도.

무료로 시작하기