통찰력 있는 사람들이 함께하는 젊고 열정적인 IT 기업, 비젠메디컬.
홈페이지 문의 메일이 스팸함으로 갈 때, 발신 인증 3가지 설정법 - 발신 인증 3가지(SPF·DKIM·DMARC) 설정법 완벽 가이드
홈페이지 문의폼을 통해 들어온 메일이 스팸함으로 자동 분류되는 이유는 대부분 발신 도메인 인증이 되어 있지 않기 때문입니다. 방문자가 문의 버튼을 눌렀는데도 운영자가 메일을 받지 못하면, 그 순간 잠재 고객 하나를 그대로 놓치는 셈이죠. 실제로 문의는 정상적으로 발송됐는데, 받는 사람 메일함의 스팸 필터가 "이 메일은 진짜 그 도메인에서 온 게 맞는지 확인이 안 된다"고 판단해서 격리시켜 버리는 경우가 매우 흔합니다.
2026년 현재 이 문제는 더 이상 선택적으로 신경 쓸 사안이 아닙니다. 구글과 야후는 2024년 2월부터 발신자 인증 요건을 공식적으로 시행하고 있고, 이 기준을 충족하지 못하는 메일은 일시적 거부나 영구 거부 처리를 받을 수 있다고 구글이 직접 밝혔습니다. 즉 홈페이지를 아무리 잘 만들어도, 문의 메일이 도달하지 않으면 그 기능은 사실상 무용지물이 되는 것이죠.
이 글에서는 왜 홈페이지 문의폼 메일이 유독 스팸 처리에 취약한지부터, SPF 설정 · DKIM 서명 · DMARC 정책이라는 세 가지 발신 인증 요소가 각각 무슨 역할을 하는지, 그리고 실제로 어떤 순서로 설정하고 검증하면 되는지까지 처음부터 끝까지 정리해 드리겠습니다. 이 글 하나만 따라오시면, 지금 문의 메일이 왜 안 오는지 원인을 찾고 직접 해결할 수 있는 수준까지 이해하실 수 있을 거예요. 🙌

본격적인 설정에 들어가기 전에, DNS 관리 권한과 메일 발송 구조에 대한 기본 정보부터 확보해야 합니다. 이 두 가지가 없으면 아무리 설정법을 알아도 실행이 불가능하기 때문에, 준비물부터 하나씩 짚어보겠습니다.
가장 먼저 필요한 건 도메인의 DNS 관리 권한입니다. SPF, DKIM, DMARC는 모두 DNS에 텍스트 레코드(TXT 레코드)를 추가하는 방식으로 설정되기 때문에, 도메인을 구매한 곳이나 네임서버를 관리하는 곳의 로그인 정보가 필요합니다. 홈페이지 제작을 외부에 맡긴 경우라면, 도메인 관리 계정 정보를 미리 확보해두셔야 합니다.
다음으로 확인할 건 문의폼 메일이 실제로 어느 서버를 거쳐 발송되는지입니다.
호스팅 업체가 기본 제공하는 메일 발송 기능을 쓰는지, 별도의 메일 발송 서비스(SMTP 서비스)를 연동해서 쓰는지에 따라 SPF에 추가할 값이 달라집니다.
마지막으로 DKIM 서명을 지원하는 발송 환경인지 확인이 필요합니다. 일부 저가형 호스팅이나 구형 웹 발송 방식은 DKIM 서명 자체를 지원하지 않는 경우가 있어서, 이 경우엔 발송 방식을 먼저 바꿔야 할 수도 있습니다.
준비가 됐다면 아래 체크리스트로 한 번 더 확인해보세요.

홈페이지 문의폼 메일이 스팸함으로 자주 가는 근본 원인은, 발신자 주소와 실제 발송 서버가 서로 불일치하는 구조 때문입니다. 이 점을 이해하지 못하면 뒤에 나오는 SPF·DKIM·DMARC 설정을 해도 왜 그렇게 해야 하는지 감이 잘 안 잡히실 거예요.
일반적인 문의폼 구조를 떠올려보시면, 방문자가 이름·이메일·문의 내용을 입력하고 전송 버튼을 누르면, 웹서버가 그 내용을 운영자 메일로 발송합니다. 이때 흔히 저지르는 실수가 "발신자(From) 주소를 방문자가 입력한 이메일 주소로 그대로 설정하는 것"입니다.
생각해보면 자연스러워 보이지만, 이게 바로 문제의 시작입니다. 방문자의 이메일 주소는 네이버든, 지메일이든, 회사 도메인이든 우리 웹서버와는 전혀 관계없는 도메인입니다. 그런데 메일이 우리 웹서버에서 발송되면서 발신자 주소만 방문자 도메인으로 되어 있으니, 받는 메일 서버 입장에서는 이렇게 판단하게 됩니다.
"이 메일은 A 도메인 이름을 달고 있는데, 실제로는 A 도메인과 전혀 무관한 서버에서 왔네? 이거 위조된 거 아니야?"
이게 바로 스팸 필터가 가장 경계하는 패턴, 즉 발신자 도용(스푸핑)과 똑같은 신호입니다. 방문자는 아무 잘못이 없는데, 문의폼 구성 자체가 스팸으로 의심받을 수밖에 없는 형태를 만들어버린 거죠.
그래서 올바른 구조는 이렇습니다.
발신자(From) 주소는 반드시 우리 도메인 주소로 고정하고, 방문자의 이메일 주소는 회신 주소(Reply-To)에 넣는 방식입니다.
이렇게 하면 메일을 받은 운영자가 '답장' 버튼을 눌렀을 때 자동으로 방문자 이메일로 회신이 가고, 동시에 발신자 도메인과 실제 발송 서버가 일치하니 스팸 필터가 의심할 이유도 사라집니다.
주의할 점은, 이 구조를 바꾸는 것만으로 문제가 완전히 해결되지는 않는다는 것입니다. 발신자 주소를 우리 도메인으로 맞췄다면, 이제는 그 도메인 이름으로 이 서버가 메일을 보내도 되는지 DNS에 명시적으로 등록해야 합니다. 이게 바로 다음 단계인 SPF 설정입니다.

SPF·DKIM·DMARC를 설정하기 전에 반드시 먼저 확인해야 할 것은, 문의폼 메일이 정확히 '어느 서버'를 통해 나가고 있는지입니다. 이걸 모르고 설정하면 엉뚱한 서버 정보를 SPF에 등록하거나, DKIM 서명 자체를 붙일 수 없는 환경인 걸 모른 채 시간을 낭비하게 됩니다.
가장 먼저 확인할 것은 메일 발송 방식이 호스팅 기본 발송인지, 별도의 메일 발송 서비스(SMTP)를 통한 발송인지입니다.
많은 홈페이지가 호스팅 업체에서 기본 제공하는 메일 발송 함수(대표적으로 웹 서버 언어의 기본 메일 발송 기능)를 그대로 사용합니다. 이 경우 발송 서버는 호스팅사의 웹서버 자체이고, 이 서버의 IP나 도메인 정보가 SPF 레코드에 포함되어 있어야 합니다.
반면 별도의 메일 발송 서비스를 연동해서 쓰는 경우라면, 실제 발송은 그 서비스의 서버에서 이뤄집니다. 이때는 그 서비스가 안내하는 SPF 포함 값(include 구문)을 우리 도메인의 SPF 레코드에 추가해야 합니다.
어떤 방식이든 핵심은 같습니다. "실제로 메일을 내보내는 서버"가 SPF 레코드 안에 명시되어 있어야 인증이 통과됩니다.
다음으로 확인할 것은 DKIM 서명을 붙일 수 있는 환경인지입니다. DKIM은 메일 발송 서버가 메일 내용에 암호화된 서명을 붙이는 방식으로 작동하기 때문에, 발송 서버 쪽에서 이 기능을 지원해야만 설정이 가능합니다.
일부 오래된 호스팅 환경이나 단순 발송 함수만 지원하는 구성에서는 DKIM 서명 자체를 붙일 수 없는 경우가 있습니다. 이럴 때는 다음 두 가지 방향 중 하나를 검토해야 합니다.
첫째, 호스팅 업체나 개발 담당자에게 DKIM 서명 기능 지원 여부를 문의하고 활성화하는 방법입니다.
둘째, DKIM 서명이 가능한 별도 메일 발송 방식으로 문의폼 발송 로직을 변경하는 방법입니다.
이 단계에서 주의하실 점은, SPF와 DKIM은 서로 다른 역할을 하기 때문에 하나만 설정하고 끝내면 안 된다는 것입니다. 구글의 발신자 요건에서도 "SPF 또는 DKIM 중 하나는 반드시 설정"이라고 되어 있지만, 실무적으로는 두 가지를 함께 설정하는 것이 도달 안정성 측면에서 훨씬 안전합니다. 특히 하루 5,000통 이상을 보내는 대량 발신자라면 SPF와 DKIM 둘 다 필수이고, DMARC 레코드까지 갖춰야 하는 것으로 명시되어 있습니다.
문의폼 메일 정도의 발송량이라면 대량 발신자 요건까지 해당되지 않을 가능성이 높지만, 어느 쪽이든 세 가지를 모두 갖춰두는 것이 메일 도달률 안정화에 가장 확실한 방법이라는 점은 변함이 없습니다.

세 가지 인증 요소는 역할이 완전히 다르기 때문에, 각각의 역할을 이해하고 순서대로 설정해야 제대로 작동합니다. 이 순서를 뒤바꾸거나 하나를 건너뛰면 나머지 설정도 제 힘을 못 씁니다.
첫째, SPF(Sender Policy Framework) 설정입니다.
SPF는 "이 도메인 이름으로 메일을 보낼 수 있는 서버 목록을 DNS에 적어두는 것"입니다. 도메인 DNS 관리 화면에서 TXT 레코드를 추가하고, 그 안에 발송을 허용할 서버 정보를 명시하는 방식입니다. 예를 들어 호스팅사의 메일 서버만 사용한다면 해당 서버 정보를, 별도 메일 발송 서비스를 함께 쓴다면 그 서비스가 안내하는 include 구문을 추가로 넣어야 합니다. 여러 서버를 함께 쓴다면 하나의 SPF 레코드 안에 모두 포함시켜야 하며, SPF 레코드는 도메인당 하나만 존재해야 한다는 점도 꼭 기억해두세요. 두 개 이상 만들면 오히려 인증이 실패할 수 있습니다.
둘째, DKIM(DomainKeys Identified Mail) 서명 설정입니다.
DKIM은 "보낸 메일에 서명을 붙여 위조되지 않았음을 확인시키는 것"입니다. 이 서명은 메일 발송 서버가 개인키로 암호화해서 붙이고, 받는 쪽에서는 우리가 DNS에 공개해둔 공개키로 그 서명을 검증합니다. 따라서 설정 순서는 먼저 발송 서버(또는 발송 서비스) 쪽에서 DKIM 서명 기능을 활성화하고, 그때 발급되는 공개키 값을 우리 도메인의 DNS에 TXT 레코드로 등록하는 방식입니다. 이 공개키 값은 발송 서비스마다 형식이 다르기 때문에, 각 서비스의 안내 문서에 나온 호스트명과 값을 정확히 그대로 입력하는 것이 중요합니다. 한 글자라도 다르면 검증에 실패합니다.
셋째, DMARC(Domain-based Message Authentication, Reporting & Conformance) 정책 설정입니다.
DMARC는 "SPF와 DKIM 검사가 실패했을 때 어떻게 처리할지를 정하고, 그 결과를 보고서로 받는 것"입니다. 이것 역시 DNS에 TXT 레코드를 추가하는 방식으로 설정하며, 정책값(p=)과 보고서를 받을 메일 주소(rua=)를 지정하는 구조입니다.
여기서 가장 중요한 주의사항을 말씀드려야 합니다. DMARC 정책을 처음부터 quarantine(격리)이나 reject(거부)로 설정하면 절대 안 됩니다. 정상적으로 발송된 메일까지 실패로 잘못 판정되어 통째로 막혀버릴 위험이 있기 때문입니다. 대신 정책값을 none으로 설정해서, 일단 어떤 메일들이 인증에 실패하고 있는지 보고서로 먼저 확인하는 것이 안전한 순서입니다. 구글의 대량 발신자 요건에서도 "DMARC 레코드는 있어야 하지만 정책 자체는 none이어도 된다"고 명시되어 있는 만큼, 처음에는 none으로 시작해서 상황을 지켜보는 것을 권해드립니다.

DNS에 레코드를 추가했다고 끝난 게 아니라, 반드시 실제 메일을 발송해서 인증이 제대로 통과되는지 확인하는 절차가 필요합니다. DNS 설정은 문법 하나만 틀려도 조용히 실패하는 경우가 많기 때문에, 눈으로 직접 확인하는 이 단계를 절대 생략하면 안 됩니다.
가장 실용적인 확인 방법은 지메일 계정으로 문의폼 테스트 메일을 발송해보고, 받은 메일의 '원문 보기' 기능으로 인증 결과를 확인하는 것입니다.
방법은 이렇습니다.
먼저, 홈페이지 문의폼에 실제로 테스트 내용을 입력하고 전송해서, 지메일 계정으로 수신되는지 확인합니다. 이때 받은편지함으로 오는지, 스팸함으로 가는지도 함께 체크해두세요.
다음으로, 받은 메일을 열고 우측 상단의 메뉴(점 세 개 아이콘)를 눌러 '원본 보기' 또는 '메시지 원본 표시'를 선택합니다.
그리고 원문 안에서 spf=pass, dkim=pass, dmarc=pass라는 문구가 있는지 확인합니다. 이 세 가지가 모두 pass로 표시되면 설정이 정상적으로 작동하고 있다는 뜻입니다. 만약 spf=fail이나 dkim=fail, dmarc=fail 같은 문구가 보인다면, 앞서 등록한 DNS 레코드에 오타나 누락이 없는지 다시 확인해야 합니다.
마지막으로, DMARC 보고서를 받을 메일 주소로 실제 보고서가 도착하는지 며칠간 지켜봅니다. DMARC 레코드에 등록해둔 rua 주소로 XML 형식의 보고서가 주기적으로 발송되는데, 이 보고서 안에 우리 도메인 이름으로 발송된 메일들이 SPF·DKIM 검사를 통과했는지 실패했는지가 집계되어 나타납니다. 만약 보고서에 실패 기록이 계속 쌓인다면, 아직 인증이 안 된 발송 경로가 남아있다는 신호이므로 그 경로를 찾아 추가로 SPF·DKIM 설정을 보완해야 합니다.
이 확인 과정을 거치지 않고 "설정했으니 됐겠지"라고 넘어가시면, 실제로는 레코드 문법 오류로 인증이 전혀 작동하지 않는 상태로 몇 달을 방치하게 될 수도 있습니다. 번거롭더라도 반드시 실제 발송 테스트와 원문 확인을 거치는 습관을 들이시길 권해드립니다.

가장 흔하게 발생하는 오류는 SPF 레코드를 도메인당 두 개 이상 만들어버리는 실수입니다. SPF는 하나의 도메인에 반드시 하나의 TXT 레코드로만 존재해야 하는데, 여러 서비스를 추가하면서 실수로 별도의 SPF 레코드를 하나 더 만들어버리면 오히려 SPF 검사 자체가 무효화되거나 실패 처리됩니다. 이 경우엔 기존 레코드를 삭제하지 말고, 하나의 레코드 안에 include 구문을 이어 붙이는 방식으로 합쳐야 합니다.
두 번째로 자주 나오는 문제는 DKIM 공개키 값을 복사하는 과정에서 앞뒤 공백이나 줄바꿈이 섞여 들어가는 것입니다. DKIM 키 값은 매우 길기 때문에 복사·붙여넣기 과정에서 미세한 오류가 생기기 쉽고, 이 경우 DNS에는 값이 등록되어 있는데도 검증에는 계속 실패하는 상황이 발생합니다. 등록 후 반드시 DNS 조회 도구로 실제 저장된 값을 다시 확인하는 습관이 필요합니다.
세 번째는 DNS 변경 사항이 전파되는 데 시간이 걸린다는 점을 간과하는 것입니다. TXT 레코드를 등록해도 전 세계 DNS 서버에 반영되기까지 짧게는 몇 분에서 길게는 몇십 시간까지 걸릴 수 있습니다. 설정 직후 바로 테스트해서 실패가 나온다고 낙담하지 마시고, 일정 시간을 두고 다시 확인해보세요.
네 번째는 발신자 주소와 회신 주소를 혼동하는 것입니다. 발신자(From)는 반드시 우리 도메인으로 고정해야 하는데, 개발 과정에서 실수로 방문자 이메일을 다시 From에 넣어버리는 경우가 있습니다. 이 구조로 되돌아가면 앞서 설명한 스푸핑 의심 패턴이 재발하니, 문의폼 발송 로직의 From/Reply-To 설정을 다시 점검해야 합니다.

설정을 마친 뒤에도 정기적으로 DMARC 보고서를 확인하는 습관이 도달률 안정화의 핵심입니다. 한 번 설정했다고 끝이 아니라, 발송 서버 구성이 바뀌거나 새로운 메일 발송 서비스를 추가할 때마다 SPF·DKIM 설정도 함께 갱신해야 하기 때문입니다.
특히 이런 상황에서는 반드시 재점검이 필요합니다.
첫째, 홈페이지를 새로 리뉴얼하거나 호스팅사를 옮길 때입니다. 이 경우 메일 발송 서버 자체가 바뀔 수 있어서, 기존 SPF 레코드에 등록된 서버 정보가 더 이상 유효하지 않게 됩니다.
둘째, 마케팅 메일이나 뉴스레터 발송을 위해 별도 서비스를 새로 추가할 때입니다. 이때는 기존 SPF 레코드에 새 서비스의 include 구문을 추가해야 하는데, 이걸 빠뜨리면 새 서비스로 보낸 메일만 인증에 실패하게 됩니다.
셋째, DKIM 키를 주기적으로 교체(로테이션)하는 서비스를 사용하는 경우입니다. 일부 발송 서비스는 보안 강화를 위해 DKIM 키를 주기적으로 바꾸도록 안내하는데, 이때 안내에 따라 DNS 레코드도 함께 갱신해야 인증이 계속 유지됩니다.
또한 문의폼뿐 아니라 회원가입 인증메일, 비밀번호 재설정 메일, 주문 확인 메일 등 홈페이지에서 발송되는 모든 자동 메일에 동일한 원칙이 적용된다는 점도 기억해두시면 좋습니다. 발신자 도메인을 일관되게 우리 도메인으로 유지하고, 그 도메인의 SPF·DKIM·DMARC를 한 번 제대로 갖춰두면 문의폼 메일뿐 아니라 모든 자동 발송 메일의 도달 안정성이 함께 개선되는 구조입니다.
마지막으로, 대량 발송 요건에 해당하지 않더라도 DMARC 정책을 none에서 급하게 quarantine이나 reject로 올리지 마시길 다시 한번 권해드립니다. 보고서를 통해 최소 몇 주간은 실패 패턴이 없는지 관찰한 뒤, 정말 모든 발송 경로가 정상 인증되고 있다는 확신이 들 때 단계적으로 정책을 강화하는 것이 안전합니다.

SPF·DKIM·DMARC 설정은 문의폼 메일 하나만을 위한 것이 아니라, 도메인 전체의 메일 발송 신뢰도를 결정하는 기반이 된다는 점에서 확장성이 큽니다. 한 번 제대로 갖춰두면 그 효과가 여러 영역으로 이어집니다.
예를 들어 쇼핑몰을 운영 중이라면 주문 확인·배송 안내·환불 처리 메일이 모두 같은 도메인에서 발송되므로, 동일한 인증 체계 덕분에 이런 메일들의 도달 신뢰도도 함께 확보됩니다.
마케팅 자동화 도구를 활용해 뉴스레터나 프로모션 메일을 정기 발송하는 경우라면, 그 발송 서비스의 서버 정보를 SPF에 추가하고 DKIM 서명을 연동하는 절차가 문의폼 설정과 원리적으로 동일합니다. 즉 문의폼 인증 설정을 한 번 경험해두면, 이후 다른 발송 채널을 추가할 때도 같은 원리로 빠르게 적용할 수 있습니다.
또한 CS(고객 응대) 메일이나 영업 관리 시스템에서 자동 발송되는 알림 메일 역시 같은 도메인 인증 체계 위에서 동작하기 때문에, 발신 도메인 인증을 한 번 확실히 다져두는 것이 결국 전체 업무 메일 시스템의 안정성으로 이어진다고 볼 수 있습니다.

설정을 마쳤다면 아래 항목을 순서대로 다시 확인해보세요.
문의폼 메일의 발신자(From) 주소가 방문자 이메일이 아닌, 우리 도메인 주소로 고정되어 있는가.
방문자 이메일 주소가 회신 주소(Reply-To)에 정확히 들어가 있는가.
SPF 레코드가 도메인당 하나만 존재하며, 실제 발송 서버 정보가 모두 포함되어 있는가.
DKIM 공개키가 DNS에 오타 없이 등록되어 있고, 발송 서버에서 서명이 활성화되어 있는가.
DMARC 레코드가 등록되어 있으며, 정책값이 none으로 설정되어 있는가.
지메일 테스트 발송에서 원문 보기 시 spf=pass, dkim=pass, dmarc=pass가 모두 확인되는가.
DMARC 보고서 수신 주소로 보고서가 실제로 도착하고 있는가.
이 일곱 가지를 모두 통과했다면, 홈페이지 문의폼 메일의 발신 인증 기반은 안정적으로 갖춰진 상태라고 보셔도 좋습니다.

Q1. SPF만 설정하면 안 되나요? DKIM까지 꼭 해야 하나요?
구글의 발신자 요건상으로는 SPF 또는 DKIM 중 하나만 있어도 최소 기준은 충족됩니다. 다만 실무적으로는 두 가지를 함께 설정하는 것이 인증 신뢰도를 훨씬 높여주기 때문에, 가능하다면 둘 다 갖추시는 걸 권해드립니다.
Q2. 하루에 문의 메일이 몇 통 안 되는데도 DMARC까지 설정해야 하나요?
대량 발신자 요건(하루 5,000통 이상)에는 해당하지 않더라도, DMARC는 SPF·DKIM 실패 여부를 보고서로 확인할 수 있게 해주는 유일한 수단이기 때문에 발송량과 무관하게 설정해두시는 것이 좋습니다.
Q3. 설정했는데도 여전히 스팸함으로 가요. 왜 그런가요?
DNS 전파 시간이 아직 안 지났거나, SPF 레코드가 중복 생성됐거나, DKIM 키에 오타가 있는 경우가 대부분입니다. 지메일 원문 보기로 pass/fail 여부부터 먼저 확인해보세요.
Q4. DMARC 정책을 언제쯤 reject로 올려도 되나요?
보고서를 통해 일정 기간 동안 실패 기록이 없다는 것을 확인한 뒤에 단계적으로 올리는 것이 안전합니다. 처음부터 강한 정책을 적용하면 정상 메일까지 막힐 수 있습니다.
홈페이지 문의폼 메일이 스팸함으로 가는 문제는 원인만 정확히 알면 충분히 직접 해결할 수 있는 영역입니다. 발신자 주소 구조를 바로잡고, SPF·DKIM·DMARC를 순서대로 설정한 뒤, 지메일 원문 보기로 직접 검증하는 과정을 이 글의 순서대로 따라가 보시길 바랍니다. 구글·야후의 발신자 인증 요건 관련 공개 자료들을 참고하시면 더 세부적인 최신 정책도 확인하실 수 있습니다.
상담요청