개인 도메인 메일을 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 된 것을 알 수 있다. 이를 통해 메일 서버들이 내 메일을 뱉어내는 일은 많이 줄어들 것이다. 하지만, 중요한 메일을 보낸 다음에는 유선으로 다시 한 번 확인 요청을 주는게 여러모로 좋다.