메일이 정상적으로 전송되지 못했습니다.
본 필자는 개인 도메인을 다음 스마트워크에 연동해 대표 메일 주소로 사용하고 있다. 어느 날, 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 입장에서는 발송 서버와 메일의 도메인이 다르더라도 DNS 레코드에 기록된 내용을 근거로 스푸핑(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에 텍스트 레코드를 추가하는 것으로 적용할 수 있다. 별도의 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 설정만 적용 시켰다. DKIM 값을 받을 수 있는 경우라면 위의 예를 참고하여 추가적으로 설정하면 된다.
DNS 레코드에 수정한 사항은 전파되는데 시간이 필요하다. 수정하고 약 1시간 정도 기다린 다음, 사용자 도메인 메일에서 Gmail 주소로 메일을 발송해 보면 정상적으로 메일이 수신되는 것을 확인할 수 있다. 추가적으로, 발송한 메일에 대해 각 정책이 적용된 것을 확인하려면 수신된 메시지의 원문보기를 클릭해 그 결과를 확인할 수 있다.

SPF와 DMARC가 모두 PASS 된 것을 알 수 있다. 또한 일정 시간이 경과한 후, DMARC 의 설정에 따라 Gmail 에서 메일 처리 결과를 보내 주기도 한다. 이를 통해 메일 서버들이 내 메일을 뱉어내는 일은 많이 줄어들 것이다. 하지만, 중요한 메일을 보낸 다음에는 유선상으로 다시 한 번 확인 요청을 하는 것이 기본적인 상식인 동시에 예의인 것을 기억해야 한다.
FAQ
- 개인 도메인 메일을 사용하면 Gmail에서 무조건 차단되는가?
- 아니다. Gmail은 개인 도메인 메일 자체를 차단하는 것이 아니라 SPF, DKIM, DMARC와 같은 발신자 인증이 설정되지 않은 메일을 차단하거나 스팸으로 분류한다. 인증 정보가 올바르게 설정되어 있다면 일반적으로 정상 수신된다.
- SPF만 설정해도 Gmail 수신이 가능한가?
- SPF만 설정한 경우, Gmail 에서 수신은 되나 스팸 메일로 처리하는 것을 확인 했다. DMARC까지 함께 구성하는 것이 보다 안정적이며, 메일 서비스 제공업체가 DKIM을 지원한다면 함께 설정하는 것이 좋다.
- DKIM이 없으면 메일을 사용할 수 없는가?
- 그렇지는 않다. 실제로 일부 메일 서비스는 사용자 도메인에 대한 DKIM 설정을 지원하지 않는다. 이러한 경우 SPF와 DMARC만으로도 상당수의 메일 서버에서 정상적으로 수신이 가능하다.
- SPF, DKIM, DMARC는 어디에 설정하는가?
- 일반적으로 도메인을 관리하는 DNS 서버에 TXT 레코드 형태로 추가한다. 가비아, 카페24, 도메인클럽과 같은 도메인 등록업체의 DNS 관리 화면에서 설정할 수 있다.
- 설정을 변경한 뒤 바로 적용되는가?
- DNS 정보는 인터넷 전체에 전파되는 시간이 필요하다. 일반적으로 수십 분에서 수 시간 정도 소요될 수 있으며, 경우에 따라 하루 이상 걸릴 수도 있다.
- SPF, DKIM, DMARC가 정상 동작하는지 확인하려면?
- Gmail로 테스트 메일을 보낸 뒤 수신된 메일의 ‘원문 보기’ 기능을 사용하면 SPF, DKIM, DMARC의 통과(PASS) 여부를 확인할 수 있다.
갱신 내역
- — 최초 게시
- — 수정