회원가입 인증메일이 오지 않는다는 문의를 받고 발송 로그를 열어보면, 대부분 ‘발송 성공’으로 찍혀 있습니다. 우리 서버는 메일을 넘겼고 받는 쪽에서 받지 않은 것입니다. 코드에는 잘못된 곳이 없으니 개발팀도 원인을 찾지 못합니다.
2025년 11월부터 Gmail이 요건을 갖추지 못한 메일을 실제로 거부하기 시작하면서 이런 문의가 늘었습니다. 그런데 이 문제는 개발 문제일 수도 있고 도메인 설정 문제일 수도 있습니다. 둘을 구분하지 못하면 견적서에 엉뚱한 항목이 들어갑니다.
스팸함으로 가는 것과 반송되는 것은 원인이 다릅니다
스팸함에 들어간 메일은 어쨌든 도착한 것입니다. 받는 서버가 메일을 받아들인 뒤 평판을 근거로 위치만 옮긴 상태입니다. 반송은 다릅니다. 메일을 주고받는 단계에서 거부당해 받은편지함에도 스팸함에도 남지 않습니다.
반송된 메일에는 숫자 코드가 붙어 옵니다. 4로 시작하면 일시적인 지연이라 발신 서버가 다시 시도합니다. 5로 시작하면 영구 거부라 재시도가 없습니다. 원인 파악은 이 코드를 확인하는 데서 시작하세요.
2025년 11월부터 Gmail은 요건 미달 메일을 거부합니다
구글 공식 FAQ는 2025년 11월부터 요건을 지키지 않는 트래픽에 대한 집행을 강화한다고 밝히고 있습니다. 그 결과로 일시적 거부와 영구적 거부를 포함한 장애가 발생한다고 적혀 있습니다.
공식 오류 코드 목록을 보면 차이가 분명합니다. 421 4.7.26은 인증되지 않은 메일에 속도 제한을 건다는 뜻이고, 550 5.7.26은 발신자가 인증되지 않아 차단했다는 뜻입니다. 원인은 같지만 앞의 것은 늦게라도 도착하고 뒤의 것은 도착하지 않습니다.
발송 로그의 ‘성공’은 우리 서버가 메일을 넘겼다는 뜻일 뿐, 상대가 받았다는 뜻이 아닙니다.
하루 5,000통을 넘지 않아도 인증은 필수입니다
구글이 말하는 대량 발신자는 24시간 안에 개인 Gmail 계정으로 5,000통 가까이 보내는 발신자입니다. 이 기준을 넘지 않는 쇼핑몰이라도 모든 발신자에게 적용되는 요건은 그대로 적용됩니다.
모든 발신자는 SPF 또는 DKIM 중 하나를 설정해야 하고, 정방향·역방향 DNS 기록이 유효해야 하며, TLS 연결을 써야 합니다. 스팸 신고율은 0.3% 미만이어야 합니다. 5,000통을 넘어서면 SPF와 DKIM을 둘 다 갖추고 DMARC까지 게시해야 합니다.
From 도메인이 정렬되지 않으면 인증에 성공해도 걸립니다
가이드라인은 From 헤더의 도메인이 SPF 도메인 또는 DKIM 도메인과 정렬되어야 한다고 못 박습니다. 정렬은 두 도메인이 서로 맞아야 한다는 뜻입니다.
실무에서 가장 많이 걸리는 지점이 여기입니다. 발송 대행 서비스를 쓰면 서명은 대행사 도메인으로 붙는데 보내는 사람 주소만 자사 도메인인 경우가 흔합니다. SPF도 DKIM도 통과하지만 정렬에 실패해 거부됩니다. 550 5.7.26에는 도메인의 DMARC 정책 때문에 미인증 메일을 받지 않는다는 문구가 함께 나옵니다.
DMARC는 p=none으로도 요건을 채웁니다
DMARC를 걸면 보내던 메일이 무더기로 차단될까 봐 미루는 곳이 많습니다. 구글 문서는 시행 정책을 none으로 설정해도 된다고 명시합니다. 요건 충족만 목적이라면 TXT 레코드 한 줄로 끝납니다.
p=none은 인증에 실패한 메일을 어떻게 처리할지 지시하지 않고 보고만 받는 설정입니다. quarantine이나 reject로 올리는 것은 별개 결정이고, 우리 도메인으로 나가는 발송 경로를 전부 파악한 뒤에 하세요. 다만 p=none이어도 정렬 요건은 그대로 적용됩니다.
0.10%와 0.30%는 성격이 다른 숫자입니다
구글은 Postmaster Tools 기준 스팸 신고율을 0.10% 미만으로 유지하라고 권고하고, 0.30%에는 절대 도달하지 말라고 씁니다. 0.30%는 1,000통 중 3통이 스팸으로 신고된 수준입니다.
두 숫자의 무게가 다릅니다. 2024년 6월부터 신고율이 0.3%를 넘는 대량 발신자는 구글의 구제 조치 대상에서 제외됩니다. 문제가 생겨도 풀어달라고 요청할 창구가 사라진다는 뜻입니다.
원클릭 수신거부는 주문 확인메일에는 요구되지 않습니다
RFC 8058 원클릭 수신거부는 마케팅·홍보 메일에만 적용됩니다. 구글 FAQ는 비밀번호 재설정, 예약 확인, 폼 제출 확인 같은 거래성 메일을 제외 대상으로 명시합니다. 가입 인증메일이나 주문 확인메일이 안 가는 원인은 여기가 아닙니다.
대신 지켜야 할 기한이 있습니다. 구글의 구독 메일 가이드는 수신거부 요청을 48시간 안에 처리하라고 요구합니다. 광고 메일과 거래성 메일을 한 시스템에서 섞어 보내면 신고가 인증메일 쪽 평판까지 끌어내리니 발송 경로를 나누세요.
DNS에 등록할 항목은 세 줄과 한 가지입니다
도메인에 실제로 넣어야 하는 것은 다음과 같습니다. 값 자체는 사용하는 발송 시스템이 알려줍니다.
- SPF: 우리 도메인 이름으로 메일을 보낼 자격이 있는 서버를 적은 TXT 레코드
- DKIM: 서명 검증용 공개키를 담은 TXT 레코드. 선택자 이름이 붙은 하위 이름에 등록합니다
- DMARC: _dmarc 이름으로 등록하는 TXT 레코드. 최소 p=none이면 요건을 충족합니다
- 역방향 DNS(PTR): 발송 IP가 도메인으로 되돌아 조회되게 하는 설정. 메일 서버를 직접 운영할 때만 해당합니다
앞의 세 줄은 도메인을 구입한 곳의 관리 화면에 값을 붙여 넣는 작업입니다. PTR은 도메인 업체가 아니라 IP를 배정한 호스팅 업체에 요청해야 합니다.
값을 만드는 쪽이 개발이고 붙여 넣는 쪽이 도메인 관리자입니다
구분 기준은 간단합니다. DNS에 넣을 값을 만들어 내는 일은 개발이고, 만들어진 값을 등록하는 일은 도메인 관리자입니다. 등록 자체는 보통 30분이면 끝나므로 견적에 넣을 항목이 아닙니다.
견적에 들어가야 하는 것은 발송 시스템 안쪽을 고치는 작업입니다. DKIM 키를 만들어 서명을 붙이는 설정, 보내는 사람 주소와 서명 도메인을 맞추는 변경, 마케팅과 거래성 메일의 경로 분리가 여기에 해당합니다. 수신거부 처리 화면과 48시간 안에 반영되는 로직, 반송 코드를 로그에 남기고 실패한 주소를 걸러내는 처리도 개발 몫입니다.
이 작업만으로 해결되지 않는 경우도 있습니다
인증을 모두 갖춰도 도착하지 않는 경우가 있습니다. 이미 신고율이 올라간 도메인이 대표적입니다. 0.3%를 넘긴 상태라면 구제 대상에서 빠지므로 설정을 고쳐도 회복에는 시간이 걸립니다. 구매한 주소록으로 보냈거나 오래된 주소가 많이 섞여 있으면 반송과 신고가 계속 쌓입니다.
수신자가 개인 Gmail이 아니라 Google Workspace 계정이면 이 가이드라인은 적용되지 않습니다. 거래처 담당자에게 보낸 메일이 안 갔다면 원인은 다른 곳에 있습니다. 요건과 코드는 Gmail 발신자 가이드라인과 가이드라인 FAQ에서 직접 확인하세요.
비슷한 운영 문제는 실무 가이드에 모아 두었습니다. 발송 구조를 어디부터 손봐야 할지 판단이 서지 않으면 Codeforest에 문의하세요.
결론: 반송 코드부터 확인하고 작업을 둘로 나누세요
메일이 도착하지 않는 원인은 대부분 코드가 아니라 도메인이 신원을 증명하지 못한 데 있습니다. 반송 코드가 550 5.7.26이면 인증 문제이고, DNS 레코드 세 줄로 해결되는 범위입니다. 이 작업은 도메인 관리자가 하면 되고 별도 견적이 필요하지 않습니다.
개발 견적이 필요한 부분은 DKIM 서명, 보내는 사람 주소 정렬, 발송 경로 분리, 수신거부 처리처럼 발송 시스템을 고치는 일입니다. 두 가지를 섞어 맡기면 필요 없는 비용이 붙거나 정작 필요한 작업이 빠집니다. 반송 코드를 먼저 확인하고 나눈 다음에 견적을 받으세요.