2026-10 기준. Gmail 수신, AWS SES(Simple Email Service) 발신·수신에서 확인했다.
당신의 서비스가 가입 확인 메일이나 알림 메일을 보낸다. 메일 발송 서비스(ESP) 화면에는 「Delivered」가 찍히고, 헤더를 보면 SPF·DKIM·DMARC 가 전부 pass 다. 그런데 사용자는 메일을 못 받았다고 한다 — Gmail 스팸함에 있었다. 또는 새 도메인의 문의 메일을 받으려고 AWS SES 에 수신 규칙 세트를 하나 만들어 활성화했더니, 그날부터 다른 도메인의 문의 메일이 하나도 안 온다. 아무 오류도, 반송도 없다.
보낸 쪽의 「성공」은 어디까지를 재나
메일의 성공 신호는 각자 자기 구간까지만 잰다. 「Delivered」는 상대 메일 서버가 메일을 받아 들였다는 뜻이지 받는 편지함에 들어갔다는 뜻이 아니다. SPF·DKIM·DMARC pass 는 보낸 이가 진짜라는 인증일 뿐, 스팸 판정은 그 뒤에 따로 한다. 수신 쪽 설정은 메일이 안 오면 아무 신호도 내지 않는다 — 안 온 메일은 아무도 모른다. 그래서 메일 경로를 바꿀 때마다 받는 편지함을 직접 열어 확인한다.

인증이 다 통과했는데 왜 스팸함으로 가나
Gmail 은 인증과 별개로 보내는 도메인의 평판을 본다(Gmail 보내는 사람 가이드라인). 한동안 메일을 안 보낸 도메인은 평판이 식어, 인증이 전부 통과해도 꾸밈이 많은 HTML 메일은 스팸함으로 간다. 같은 때 순수 텍스트 메일은 받은편지함에 들어가기도 한다 — 그래서 「테스트 메일은 왔는데」가 반증이 되지 않는다. 테스트도 실제와 같은 꼴(HTML)로 보낸다.
식은 평판을 되살리는 데 도움이 된 것:
- DMARC 정책을
p=none에서p=quarantine으로 올리고rua=에 보고서를 받을 주소를 둔다(DMARC 표준, RFC 7489). 받은 쪽이 이 도메인을 사칭한 메일을 걸러도 된다고 밝히는 것이 신뢰 신호가 된다 - 스팸함에 간 메일을 받는 쪽에서 「스팸 아님」으로 표시한다
- 알림 메일은 오래 쉬게 두지 말고, 적은 양이라도 꾸준히 보낸다
수신 설정 하나를 켰는데 왜 다른 도메인 메일이 끊기나
AWS SES 의 수신 규칙 세트(receipt rule set)는 리전마다 한 번에 하나만 활성이다(SES 문서). 새 도메인용 세트를 만들어 「활성화」하면 기존 세트는 그 자리에서 꺼지고, 기존 세트에 있던 모든 도메인의 수신이 조용히 멈춘다. 보낸 사람에게 반송도 안 간다.
새 도메인을 받으려면:
- 지금 활성 세트가 무엇인지, 그 안에 어떤 규칙이 있는지 먼저 본다(
aws ses describe-active-receipt-rule-set) - 새 세트를 만들지 말고 활성 세트에 규칙을 더한다
- 굳이 새 세트로 옮기려면 기존 규칙을 전부 옮긴 뒤에 바꾼다
메일 설정을 바꾼 뒤에는 무엇을 확인하나
[ ] 이 계정·리전에서 메일을 받는 주소 목록을 먼저 적었다(바꾸는 도메인만이 아니라 전부)
[ ] 바꾼 뒤 목록의 모든 주소로 외부 계정에서 실제 메일을 보냈다
[ ] 받는 편지함을 직접 열었다 — 받은편지함인지 스팸함인지까지
[ ] 테스트 메일은 실제 메일과 같은 꼴(HTML·링크·이미지)이다
[ ] DMARC 보고서(rua)를 받을 주소가 실제로 메일을 받는다
[ ] 일정 기간 메일이 0통이면 알리는 감시가 있다(안 온 메일은 스스로 알리지 않는다)
마지막 줄이 가장 중요하다. 수신이 끊긴 것을 알아채는 길은 「요즘 문의가 없네」뿐이다 — 문의가 하루 몇 통인 서비스라면 몇 주가 지나서야 안다.
우리가 겪은 일
- 식은 평판: 두 달쯤 메일을 안 보낸 도메인에서 알림 메일을 다시 켰더니, 인증 세 가지가 다 통과인데 HTML 메일만 Gmail 스팸함으로 갔다. 받는 쪽을 직접 열어서 알았고, DMARC 를
quarantine으로 올리고 「스팸 아님」 처리한 날 받은편지함으로 돌아왔다. - 한 번에 하나뿐인 수신 세트: 새 도메인 수신 세트를 활성화한 날, 기존 세트에 있던 두 도메인의 수신이 끊겼다. 다른 일로 설정을 정리하다 활성 세트 목록을 보고서야 알았다.