개인 도메인 메일을 Gmail이 거부하는 이유와 해결 방법 (SPF, DKIM, DMARC)
개인 도메인 메일을 Gmail이 거부하는 이유와 해결 방법 (SPF, DKIM, DMARC)
개인 도메인 메일을 사용하다 보면 Gmail등에서 메일이 차단되거나 스팸으로 분류되는 문제가 발생할 수 있다. 이는 SPF, DKIM, DMARC와 같은 메일 인증 정보가 설정되지 않았기 때문이다. 본 글에서는 다음 스마트워크를 사용하며 실제로 발생한 Gmail 차단 사례를 바탕으로, 메일 인증의 종류와 DNS 설정을 통한 해결 방법을 간단히 정리한다.
메일이 정상적으로 전송되지 못했습니다.
본 필자는 개인 도메인을 다음 스마트워크에 연동해 대표 메일 주소로 사용하고 있다. 오랜 시간 동안 잘 사용해 오던 어느날, Gmail 계정으로 메일을 발송하자 오류 메시지를 받게 되었다.
Gmail에서 반환된 실제 오류 메시지는 다음과 같다. (본 글에서는 개인정보 보호를 위해 수신자의 메일 주소와 발송 도메인을 hide@gmail.com, domain.kr이라 하겠다.)
메일이 정상적으로 전송되지 못했습니다. 회원님께서 발송하신 메일이 전송되지 못했습니다. 반송사유 : 메일전송에 문제가 있습니다. 해결방법 : 아래의 사유원문을 복사하셔서 Daum 메일 고객센터에 문의메일을 보내주세요. 저희가 확인해드리겠습니다. 사유원문 The original message was received at ... ---- The following addresses had permanent fatal errors ----(reason: 550-5.7.26 Your email has been blocked because the sender is unauthenticated. 550-5.7.26 Gmail requires all senders to authenticate with either SPF or DKIM. 550-5.7.26 550-5.7.26 Authentication results: 550-5.7.26 DKIM = did not pass 550-5.7.26 SPF [domain.kr] with ip: [220.64.111.155] = did not pass 550-5.7.26 550-5.7.26 For instructions on setting up authentication, go to 550 5.7.26 https://support.google.com/mail/answer/81126#authentication 41be03b00d2f7-c4cca44b3f5si1859256a12.429 - gsmtp) Reporting-MTA: dns; hanmail.net Final-Recipient: RFC822; hide@gmail.com Action: failed Status: 5.7.26 Diagnostic-Code: SMTP; 550-5.7.26 Your email has been blocked because the sender is unauthenticated. 550-5.7.26 Gmail requires all senders to authenticate with either SPF or DKIM. 550-5.7.26 550-5.7.26 Authentication results: 550-5.7.26 DKIM = did not pass 550-5.7.26 SPF [domain.kr] with ip: [220.64.111.155] = did not pass 550-5.7.26 550-5.7.26 For instructions on setting up authentication, go to 550 5.7.26 https://support.google.com/mail/answer/81126#authentication 41be03b00d2f7-c4cca44b3f5si1859256a12.429 - gsmtp
Gmail이 개인 도메인 메일을 차단한 이유
다음 스마트워크는 등록한 개인 도메인 주소의 이름으로 대신 메일을 발송해 준다. 문제는 개인 도메인 domain.kr 과 다음 스마트워크의 메일 발송 서버 주소 smtp.hanmail.net 가 서로 다른 도메인 이름을 가지고 있다는 것이다. 이 때문에 받는 메일 서버 입장에서는 이 메일이 다른 사람이 발신자의 이름을 사칭해 발송한 가짜 메일이거나 혹은 중간에 변조된 메일일 수 있다고 의심할 수 있게 된다.
때문에 Gmail은 이 메일을 아예 거절해 버리거나, 수신한다 하더라도 스팸메일로 분류하게 된다. 결국 메일을 보내도 상대방이 받지 못하는 상황이 발생하는 것이다.
메일의 검증 방법 : SPF, DKIM, DMARC
수신하는 메일 서버에서 수신된 메일을 신뢰하지 못하기 때문에 문제가 생긴다는 원인을 알았으니, 해결방법은 간단하다. 이 메일이 신뢰할 만한 메일인지 아닌지 수신서버가 확인할 수 있게 해 주면 된다. 이와 연관되어 사용되는 기술이 바로 DKIM / SPF / DMARC 이다.
SPF(Sender Policy Framework)는 특정한 도메인의 메일을 어떤 서버가 발송할 수 있는지 DNS 레코드에 명시해 주는 방법이다. 개인 도메인의 DNS 레코드에 hanmail.net 서버에서 메일 발송이 가능하다는 내용을 추가해 두면, Gmail 입장에서는 발송 서버와 메일의 도메인이 다르더라도 스푸핑(spoofing) 가능성이 낮다고 판단할 수 있다. 즉, 실제로 메일을 보내는 서버가 해당 도메인 메일을 보낼 권한이 있는가 검사하는 방법이다.
DKIM(DomainKeys Identified Mail)은 발송하는 메일 서버의 서명(고유 키)을 제공해 주어 수신하는 서버에서 도메인과 메일 내용의 무결성을 검증할 수 있도록 하는 방법이다. 메일 서버를 직접 운영하고 있다면 서버의 키값을 직접 생성할 수 있지만, 다음 스마트워크나 구글 워크스페이스와 같은 외부 메일 서비스를 사용할 경우, 키값을 생성하는 과정에 어려움이 있을 수 있다.
DMARC(Domain-based Message Authentication, Reporting, and Conformance)은 수신서버에게 SPF/DKIM 검증 결과에 따른 후속 동작을 요청한다. 인증이 실패할 경우 무조건 메일을 거부하라던가, 리포트를 보내달라던가, 50%정도만 스팸으로 처리해 달라던가와 같은 요청을 게시할 수 있다. 메일 서비스가 완벽하다는 확신이 있으면 매우 보수적인 정책을 게시해 주어 메일의 신뢰도를 올려줄 수 있다. 물론, 요청받은 동작의 실행 여부는 수신 서버에서 결정한다.
| 구분 | SPF (발신 서버 검증) | DKIM (메일 무결성 검증) | DMARC (정책 및 리포팅) |
|---|---|---|---|
| 핵심 목적 | 허가된 서버가 보냈는가? | 내용이 변조되지 않았는가? | 인증 실패 시 어떻게 처리할 것인가? |
| 동작 방식 | 주소 대조 | 디지털 서명 확인 | 사후 조치 |
| 확인 대상 | 발송 서버의 정보 | 메일 헤더의 암호화 값 | 메일 발송 정책 및 정렬 상태 |
| 주요 역할 | 사칭 방지 (스푸핑 차단) | 신뢰성 확보 (피싱/변조 방지) | 보안 강화 및 인증 결과 모니터링 |
| 제공 정보 | 발송 허용 서버 리스트 | 공개 키(Public Key) | 처리 정책(None/Quarantine/Reject) |
결론적으로, 수신측 서버에서 SPF를 통해 “보낸 놈이 맞는지”, DKIM을 통해 “변조되지 않았는지”, DMARC를 통해 “메일을 어떻게 처리할지” 검증할 수 있도록 해 주어, 메일의 수신 여부를 결정할 수 있게 된다.
적용 방법
SPF, DKIM, DMARC는 DNS에 TEXT 레코드를 추가하는 것으로 적용할 수 있다. 별도의 DNS 서버를 운용하고 있지 않다면 사용하고 있는 호스팅 업체(가비아, 카페24 등)를 통해 적용할 수 있다. 본 필자가 사용중인 domainclub 의 경우 아래의 순서대로 설정할 수 있다.
- Mypage -> 도메인 관리 선택 -> 대상 도메인의 상세 설정 클릭

- 부가서비스 – 웹DNS 설정

- DNS 필드 추가에 아래와 같이 TXT 필드를 추가시켜 준다.

SPF, DKIM, DMARC의 DNS 설정 예시 구분 SPF DKIM DMARC TYPE TEXT TEXT TEXT HOST @.domain.krdefault._domainkey.domain.kr_dmarc.domain.kr레코드 v=spf1 include:_spf.daum.net ~allv=DKIM1; k=rsa; p=제공받은 키값v=DMARC1; p=none; rua=mailto:mail@domain.kr(리포트 수신 메일 주소)
참고로 본 필자가 사용중인 다음 스마트워크의 경우 DKIM을 제공해 주지 않는다. 따라서 DKIM 항목은 설정해 주지 않았으며, SPF와 DMARC 설정 만으로 충분하다.
결과 확인
DNS 레코드에 수정한 사항은 전파되는데 시간이 필요하다. 수정하고 약 1시간 정도 기다린 다음, 사용자 도메인 메일에서 Gmail 주소로 메일을 발송해 보면 정상적으로 메일이 수신되는 것을 확인할 수 있다.
추가적으로, 발송한 메일에 대해 정책이 적용된 것을 확인하려면 수신된 메시지의 원문보기를 클릭해 그 결과를 확인할 수 있다.

SPF와 DMARC가 모두 PASS 된 것을 알 수 있다. 이를 통해 메일 서버들이 내 메일을 뱉어내는 일은 많이 줄어들 것이다. 하지만, 중요한 메일을 보낸 다음에는 유선으로 다시 한 번 확인 요청을 주는게 여러모로 좋다.