DNS 와 인증

받는 메일 서버(Gmail·네이버 등)는 메일이 정말 그 도메인에서 왔는지 DNS 로 확인합니다. 여기 있는 레코드를 넣지 않으면 메일이 거부되거나 스팸함으로 갑니다.

넣을 값은 설치가 끝날 때 화면에 나오고(DKIM 포함), 관리 화면 [설치 확인] 탭에서도 볼 수 있습니다. 관리 화면은 관리 화면 주소의 A 레코드가 반영된 뒤 열리므로, 처음에는 설치 끝 화면의 값을 넣으세요. 설치 끝 화면의 DKIM 자리에 "(관리 화면에서 확인)" 이 나오면 SSH 터널로 관리 화면을 열어 [설치 확인] 에서 복사합니다. 이 문서는 각 레코드가 무엇인지, 어디에 어떻게 넣는지를 설명합니다. 아래 예는 도메인 example.com, 서버 IP 203.0.113.10, 메일 서버 이름 mail.example.com, 관리 화면 mailer.example.com 입니다.

넣을 레코드 한눈에

종류 이름 값 (예) 어디서 넣나 꼭 필요?
A mail.example.com 203.0.113.10 도메인 관리 화면 필요
A mailer.example.com 203.0.113.10 도메인 관리 화면 필요 (관리 화면·HTTPS)
PTR 203.0.113.10 mail.example.com 서버 업체 콘솔 필요
TXT (SPF) example.com v=spf1 ip4:203.0.113.10 ~all 도메인 관리 화면 필요
TXT (DKIM) mail._domainkey.example.com v=DKIM1; k=rsa; p=MIIB… ([설치 확인] 에서 복사) 도메인 관리 화면 필요
TXT (DMARC) _dmarc.example.com v=DMARC1; p=none; rua=mailto:dmarc@example.com 도메인 관리 화면 필요
MX example.com 10 mail.example.com 도메인 관리 화면 DMARC 보고서를 이 서버로 받을 때만

A 레코드

메일 서버 이름과 관리 화면 주소가 이 서버 IP 를 가리키게 합니다.

이름 값
mail 203.0.113.10
mailer 203.0.113.10

PTR (역방향 DNS)

IP 로 이름을 찾는 레코드입니다. Gmail 등은 PTR 이 없거나 이상한 서버의 메일을 거부하거나 스팸으로 봅니다. 도메인 관리 화면이 아니라 서버(VPS) 업체 콘솔에서 넣습니다. IP 의 주인이 서버 업체이기 때문입니다.

업체 넣는 곳
Vultr 서버 → Settings → IPv4 → Reverse DNS 칸
AWS (EC2) 탄력적 IP(Elastic IP) → "역방향 DNS 업데이트" (A 레코드가 먼저 있어야 함)
DigitalOcean 서버(Droplet) 이름을 메일 서버 이름으로 바꾸면 PTR 이 따라 바뀝니다
그 밖의 업체 "Reverse DNS"·"rDNS"·"PTR" 메뉴. 없으면 지원 요청으로

화면 메뉴 이름은 업체가 바꿀 수 있습니다. 찾기 어려우면 업체 도움말에서 "reverse DNS" 를 검색하세요.

SPF

"이 도메인 메일은 이 IP 에서 보낸다" 는 목록입니다. 발신 도메인 자체(이름 @)에 TXT 로 넣습니다.

기존:   v=spf1 include:_spf.google.com ~all
합친 값: v=spf1 ip4:203.0.113.10 include:_spf.google.com ~all

DKIM

메일마다 붙는 전자 서명의 공개키입니다. 서명용 키는 설치 때 이 서버가 만들었고, 받는 쪽은 여기 넣은 공개키로 확인합니다.

DMARC

SPF·DKIM 이 안 맞는 메일을 받는 쪽이 어떻게 할지 정하고, 결과 보고서를 받을 주소를 알립니다. Gmail·Yahoo 는 하루 5,000통 넘게 보내는 발송자에게 DMARC 를 반드시 요구하고, 그보다 적어도 있으면 신뢰에 도움이 되므로 처음부터 넣습니다.

p= 뜻 언제
none 보고서만 받고 그대로 둠 처음 2~4주. 보고서로 모든 발송 경로가 통과하는지 확인
quarantine 안 맞으면 스팸함으로 보고서가 깨끗해진 뒤 (내 도메인을 사칭한 메일을 막음)
reject 안 맞으면 거부 충분히 확인한 뒤

MX (DMARC 보고서 받기)

DMARC 보고서를 이 서버로 받으려면 보고서 주소(dmarc@example.com)의 도메인 MX 가 이 서버를 가리켜야 합니다. 발송에는 필요 없습니다.

이 서버는 25번으로 DMARC 보고서만 받습니다. 다른 주소로 오는 메일은 받지 않고 버립니다. 그래서 MX 를 이 서버로 바꾸면 @도메인 으로 오는 답장(고객이 [답장] 을 누른 메일)이 모두 사라집니다. 답장을 받아야 하면 MX 는 지금 메일 서비스에 두고, 보낸사람 주소도 그 서비스에 메일함이 있는 주소로 쓰세요. 도메인에 메일 서비스가 없다면 본문에 문의 받을 주소·연락처를 적어 두세요.

업체별 넣는 방법

화면 메뉴 이름은 업체가 바꿀 수 있습니다. 공통 원칙: 종류(A·TXT·MX), 이름(호스트), 값, TTL(기본값 그대로)을 넣고 저장합니다.

가비아

Cloudflare

Vultr DNS

AWS Route 53

그 밖의 업체

위 원칙대로 넣고 [설치 확인] 의 [다시 확인] 으로 확인합니다. 이름 칸에 도메인까지 넣었더니 mail.example.com.example.com 처럼 두 번 붙는 일이 흔합니다 — [설치 확인] 의 "지금 값" 이 비어 있으면 이것부터 의심하세요.

반영 확인

  1. [설치 확인] 탭 에서 [다시 확인] — 공용 DNS(1.1.1.1·8.8.8.8)에 물어 봅니다. 모든 줄이 통과가 될 때까지 기다립니다 (보통 몇 분, 길면 몇 시간. 예전 값이 남아 있으면 TTL 만큼 걸림)
  2. 서버에서 직접 확인할 수도 있습니다 (dig 가 없으면 Ubuntu·Debian sudo apt install -y dnsutils, Rocky·RHEL sudo dnf install -y bind-utils):
dig +short A mail.example.com
dig +short TXT example.com
dig +short TXT mail._domainkey.example.com
dig +short TXT _dmarc.example.com
dig +short -x 203.0.113.10
  1. 테스트 모드로 시험 — [발송] 탭에서 "자동 생성" 으로 몇 통 보내고, 같은 탭의 Mailpit 칸 [열기] 로 받은 메일을 봅니다 (밖으로 안 나감)
  2. 실서버 모드로 내 주소에 1통 — 화면 위 [실서버 모드로 전환] → [발송] 탭에서 받는사람 "직접 입력" 에 내 Gmail 주소 하나, 발송 버튼 위 "실제 수신자에게 발송됩니다. 확인했습니다." 를 체크하고 [발송]. Gmail 에서 메일을 열고 ⋮ → 원본 보기 → 위쪽 표의 SPF·DKIM·DMARC 가 모두 PASS 인지 봅니다. 네이버 메일이면 메일 → 더보기 → 원본 보기에서 Authentication-Results 줄을 봅니다.
  3. 모두 PASS 면 설치 끝입니다. 이제 IP 예열 을 시작합니다. 한 번에 많이 보내지 마세요.