메일 DNS 설정
소유권 인증과 MX, SPF, DKIM, DMARC 레코드의 역할을 설명합니다.
최초 소유권 인증
처음에는 _lighthost-verification TXT 레코드만 등록합니다. 이 값으로 도메인 소유권을 확인한 뒤 실제 메일 송수신에 필요한 레코드가 표시됩니다.
최종 메일 DNS
| 레코드 | 용도 |
|---|---|
| MX | 수신 메일을 LightHost 메일 서버로 전달합니다. |
| SPF | 해당 도메인에서 메일을 보낼 수 있는 서버를 지정합니다. |
| DKIM | 발송 메일에 전자서명을 추가해 위변조 여부를 확인합니다. |
| DMARC | SPF 또는 DKIM 검증에 실패한 메일의 처리 정책을 지정합니다. |
기존 SPF가 있다면 SPF TXT를 두 개 만들지 말고 하나의 레코드로 병합해야 합니다. DKIM은 selector가 서로 다르면 여러 개를 함께 사용할 수 있습니다.
SPF 병합 가이드
SPF는 도메인 루트(@)에 하나만 있어야 합니다. 이미 Google Workspace, Cloudflare Email Routing, Mailgun 같은 서비스를 사용하고 있다면 기존 SPF를 삭제하지 말고 LightHost가 안내한 ip4 mechanism을 기존 값에 추가합니다.
메일 관리 화면에 표시되는 값이 다음과 같다고 가정하겠습니다.
v=spf1 ip4:58.121.133.131 -all여기서 기존 SPF에 추가할 부분은 ip4:58.121.133.131입니다. 발송 IP가 변경될 수 있으므로 실제 작업에서는 메일 관리 화면에 표시된 값을 우선해주세요.
기존 SPF가 없는 경우
DNS에 다음 레코드를 새로 만듭니다.
| 항목 | 값 |
|---|---|
| 종류 | TXT |
| 이름 | @ |
| 값 | v=spf1 ip4:58.121.133.131 -all |
기존 SPF가 하나 있는 경우
기존 값의 all 바로 앞에 LightHost의 ip4 mechanism을 넣습니다.
기존 값:
v=spf1 include:_spf.mx.cloudflare.net ~all병합한 값:
v=spf1 include:_spf.mx.cloudflare.net ip4:58.121.133.131 ~allGoogle Workspace를 함께 사용하는 경우도 같은 방식입니다.
v=spf1 include:_spf.google.com ip4:58.121.133.131 ~allSPF가 여러 개 있는 경우
아래처럼 v=spf1로 시작하는 TXT 레코드를 두 개 만들면 안 됩니다.
v=spf1 include:_spf.google.com ~all
v=spf1 ip4:58.121.133.131 -all두 레코드의 발송 mechanism을 하나로 합치고, all 정책은 마지막에 한 번만 둡니다.
v=spf1 include:_spf.google.com ip4:58.121.133.131 ~allSPF 레코드가 여러 개면 수신 서버에서
PermError로 처리할 수 있습니다. LightHost DNS 검증 화면에서도 중복 SPF 경고가 표시됩니다.
병합할 때 지켜야 할 점
v=spf1은 맨 앞에 한 번만 씁니다.ip4:58.121.133.131은~all,-all,?all보다 앞에 둡니다.- 기존
include,ip4,ip6,mxmechanism은 사용하는 서비스가 있다면 유지합니다. ~all과-all을 동시에 넣지 말고 기존 정책 하나만 마지막에 유지합니다.- TXT 값 전체를 따옴표로 감싸는지는 DNS 업체 입력 방식에 따릅니다. 대부분의 관리 화면에서는 따옴표를 직접 입력하지 않습니다.
- SPF의 DNS 조회 횟수가 너무 많아지지 않도록 사용하지 않는
include는 제거합니다.
등록 결과 확인
DNS 반영 후 다음 명령으로 공개된 SPF를 확인할 수 있습니다.
dig TXT example.comWindows에서는 다음 명령을 사용할 수 있습니다.
nslookup -type=TXT example.com결과에서 v=spf1로 시작하는 레코드가 하나인지, 그 안에 메일 관리 화면에서 안내한 ip4 mechanism이 포함되어 있는지 확인한 뒤 메일 DNS 최종 확인을 누릅니다.
인증이 지연될 때
DNS 관리 화면에서 값이 정확한지 확인한 뒤 다시 검증해주세요. 공인 DNS에는 보이지만 내부 캐시가 오래된 경우 LightHost가 공인 DNS를 한 번 더 조회해 확인합니다.