← leetei.com

메일 서버 없이 내 도메인으로 메일 보내기 — Cloudflare + Resend + Gmail

leetei.com 같은 개인 도메인으로 메일을 무료로 주고받는 실전 구성. 수신은 Cloudflare Email Routing, 발신은 Resend, 평소 쓰는 Gmail에 그대로 물려서 끝낸다.

개인 도메인을 하나 사두면 me@내도메인.com 같은 주소를 갖고 싶어진다. 그런데 막상 알아보면 선택지가 애매하다. Google Workspace는 사람 수만큼 매달 돈이 나가고, 무료로 조립하자니 정보가 죄다 옛날 방식(smtp.gmail.com + 앱 비밀번호)이라 스팸함으로 직행하기 십상이다.

결론부터 말하면, 수신과 발신을 분리해서 각각 잘하는 무료 서비스에 맡기는 것이 가장 깔끔하다. 메일 서버를 직접 돌릴 필요도 없다.

전체 구조

수신:  보낸사람 → Cloudflare Email Routing → 내 Gmail 받은편지함
발신:  ① 코드/앱  → Resend API  ─┐
       ② Gmail 화면 → Resend SMTP ─┴→ 내도메인 DKIM 서명 → 수신자
  • 수신은 Cloudflare Email Routing이 맡는다. 무료고, 도메인으로 온 메일을 평소 쓰는 편지함으로 포워딩해준다.
  • 발신은 Resend가 맡는다. 무료 티어가 월 3,000통이고, 내 도메인으로 제대로 DKIM 서명을 해줘서 스팸함에 안 빠진다.

핵심은 발신용 인증 레코드가 send.내도메인.com 서브도메인에 붙는다는 점이다. 그래서 수신용 루트 설정과 절대 충돌하지 않는다.

1. 수신 — Cloudflare Email Routing

도메인의 DNS를 Cloudflare로 옮겨뒀다면 이건 클릭 몇 번이다. 대시보드에서 도메인 선택 → Email → Email Routing → Enable을 누르면 필요한 MX 레코드가 자동으로 들어간다. 그다음 받을 주소(contact@, me@ 등)와 포워딩 목적지를 지정하면 끝. 이 시점부터 도메인으로 오는 메일이 내 Gmail로 떨어진다.

2. 발신 — Resend에 도메인 등록

Resend에 가입하고 도메인을 등록하면 DNS 레코드 세 개를 알려준다. API로도 다 되는데, 도메인 등록은 이렇게 한 줄이다.

curl -X POST https://api.resend.com/domains \
  -H "Authorization: Bearer $RESEND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"leetei.com","region":"us-east-1"}'

응답으로 받은 레코드를 DNS에 넣는다. Cloudflare를 쓰면 이것도 API로 조용히 처리할 수 있다.

타입이름용도
TXTresend._domainkeyp=MIGf…(DKIM 공개키)DKIM 서명
MXsendfeedback-smtp.us-east-1.amazonses.com (우선순위 10)반송 처리
TXTsendv=spf1 include:amazonses.com ~all발신 SPF
TXT_dmarcv=DMARC1; p=none;DMARC(모니터링)
주의: 루트 도메인의 기존 SPF(수신 라우팅용)는 건드리지 않는다. 발신 SPF는 send 서브도메인에만 붙기 때문에 둘이 공존한다.

레코드를 넣고 인증을 트리거하면 보통 몇 분 안에 verified로 바뀐다. 그 뒤로는 @leetei.com어떤 로컬파트로든 발신할 수 있다.

curl -X POST https://api.resend.com/emails \
  -H "Authorization: Bearer $RESEND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Tei <me@leetei.com>",
    "to": ["someone@example.com"],
    "subject": "도메인 발신 테스트",
    "html": "<p>Resend를 통한 내 도메인 발신입니다.</p>"
  }'

3. 평소 쓰는 Gmail에 물리기

코드가 아니라 사람이 직접 보내는 메일은 Gmail의 "다른 주소에서 메일 보내기"에 Resend의 SMTP를 연결하면 된다. Gmail 설정 → 계정 및 가져오기 → 다른 이메일 주소 추가에서 아래 값을 넣는다.

항목
SMTP 서버smtp.resend.com
포트465 (SSL)
사용자 이름resend (이메일 주소가 아니다)
비밀번호Resend API 키(re_…)

여기서 흔히 막히는 지점이 사용자 이름이다. 이메일 주소가 아니라 resend라는 고정 문자열을 넣어야 한다. 앱 비밀번호 같은 건 필요 없다 — 이게 옛날 smtp.gmail.com 방식과의 결정적 차이다.

설정을 마치면 Gmail이 확인 코드를 그 주소로 보내는데, Cloudflare 라우팅 덕분에 내 편지함으로 도착한다. 코드를 입력하면 이제 메일 쓸 때 보낸사람을 me@leetei.com으로 고를 수 있다.

4. 제대로 됐는지 확인

새 주소로 자기 자신에게 한 통 보내고, 받은 메일에서 원본 보기를 열어 세 가지를 확인한다.

SPF:   PASS
DKIM:  PASS
DMARC: PASS

셋 다 PASS면 스팸함 걱정 없이 끝난 것이다.

비용과 한도

서비스무료 한도역할
Cloudflare Email Routing무제한 포워딩수신
Resend월 3,000통 / 일 100통발신

개인이 쓰기엔 넘치고, 코드에서 알림 메일까지 쏴도 여유가 있다. 나중에 진짜 메일함(웹메일·IMAP)이 필요해지면 그때 Zoho Mail Lite($1/월)나 셀프호스팅으로 넘어가면 된다. DNS 레코드 몇 줄만 바꾸면 되니까 지금 구성에 갇히는 것도 아니다.

메일은 정답이 없는 분야다. 편함을 돈으로 살 것이냐, 통제권을 손으로 가질 것이냐의 저울질일 뿐이다. 이 구성은 그 저울에서 0원으로 통제권 쪽에 최대한 붙은 지점이고, 개인 도메인 하나 굴리기엔 이만하면 충분하다.