블로그를 운영하다 보면 연락용 이메일이 필요하다. 개인정보처리방침 페이지에도 이메일 주소가 들어가야 하고, 문의 폼에도 연결해야 한다.

noreply@gmail.com 대신 contact@내도메인.com 같은 이메일이 있으면 훨씬 전문적으로 보인다.

이 글에서는 Cloudflare Email Routing으로 메일을 받고, Brevo API로 메일을 보내는 방법을 정리한다. 전부 무료다.

비즈니스 이메일이란?

나@gmail.com 대신 나@내도메인.com으로 메일을 주고받는 것이다.

방법 수신 발신 비용
Google Workspace O O 월 $7~
Zoho Mail O O 무료 (1명)
Cloudflare + Brevo O O 무료

Google Workspace는 편하지만 매월 비용이 나간다. Cloudflare로 도메인을 관리하고 있다면 추가 비용 없이 비즈니스 이메일을 만들 수 있다.

전체 구조

메일 수신 흐름:
  누군가 contact@내도메인.com으로 메일 발송
  → Cloudflare Email Routing이 수신
  → 내 Gmail (또는 워드프레스)으로 전달

메일 발신 흐름:
  답장 작성
  → Brevo API를 통해 발송
  → 받는 사람에게 contact@내도메인.com으로 표시

수신은 Cloudflare가, 발신은 Brevo가 담당하는 구조다.

Step 1: 메일 수신 설정 — Cloudflare Email Routing

Cloudflare에 이메일 라우팅 기능이 내장되어 있다. 내 도메인으로 온 메일을 원하는 이메일 주소로 전달해 주는 기능이다.

설정 방법

  1. Cloudflare 대시보드 → 도메인 선택
  2. 왼쪽 메뉴 Email → Email Routing
  3. Enable Email Routing 클릭
  4. Cloudflare가 필요한 DNS 레코드(MX, TXT)를 자동으로 추가해 준다 → Add records and enable 클릭

수신 주소 만들기

  1. Email Routing → Routing rules 탭
  2. Create address 클릭
  3. 설정:
항목 예시
Custom address contact
Destination Gmail@gmail.com

이렇게 하면 contact@내도메인.com으로 온 메일이 내 Gmail로 전달된다.

여러 주소를 만들 수도 있다:

  • contact@내도메인.com → 문의용
  • admin@내도메인.com → 관리용
  • hello@내도메인.com → 일반용

참고: Catch-all 기능을 켜면 어떤 주소로 보내든 전부 받을 수 있다. Email Routing → Catch-all address → Enable.

테스트

다른 이메일(Gmail 등)에서 contact@내도메인.com으로 메일을 보내본다. Gmail에 도착하면 수신 설정 완료.

Step 2: 메일 발신 설정 — Brevo

수신은 됐다. 이제 답장을 보낼 수 있어야 한다. 답장할 때 contact@내도메인.com으로 표시되어야 전문적으로 보인다.

Brevo(구 Sendinblue)는 무료 이메일 발송 서비스다. 하루 300통까지 무료로 보낼 수 있다.

2-1. Brevo 회원가입

  1. brevo.com 접속
  2. 회원가입 (이메일 인증 필요)
  3. 무료 플랜 선택

2-2. API 키 발급

  1. Brevo 대시보드 → 우측 상단 프로필 → SMTP & API
  2. API Keys 탭 → Generate a new API key
  3. API 키를 안전한 곳에 저장해 둔다 (한 번만 보여줌)

2-3. 발신자 등록 + 인증

Brevo에서 내 도메인으로 메일을 보내려면 발신자 인증이 필요하다. 이걸 안 하면 메일 발송이 실패한다.

  1. Brevo 대시보드 → Senders, Domains & Dedicated IPs
  2. Domains 탭 → Add a domain
  3. 도메인 입력 (예: 내도메인.com)
  4. Brevo가 DNS 레코드 4개를 알려준다

2-4. Cloudflare에 DNS 레코드 추가

Brevo가 알려준 레코드를 Cloudflare DNS에 추가한다.

Type Name Value 용도
TXT mail._domainkey (Brevo 제공값) DKIM 서명
TXT @ v=spf1 include:sendinblue.com ~all SPF 인증
TXT _dmarc v=DMARC1; p=none DMARC 정책
CNAME (Brevo 제공) (Brevo 제공값) 추적 도메인

중요: SPF 레코드가 이미 있으면 새로 만들지 말고, 기존 레코드에 include:sendinblue.com을 추가해야 한다. TXT 레코드는 같은 Name으로 중복 생성하면 충돌이 날 수 있다.

레코드 추가 후 Brevo 대시보드에서 Verify 클릭. 초록색 체크가 뜨면 인증 완료.

테스트

Brevo에서 테스트 메일을 보내본다:

  1. Brevo 대시보드 → Transactional → Email
  2. Send a test email 클릭
  3. 발신자: contact@내도메인.com, 수신자: 내 Gmail
  4. 메일이 도착하고, 보낸 사람이 contact@내도메인.com으로 표시되면 성공

VPS에서 포트 25가 막혀 있다면?

서버에서 직접 이메일을 수신하려면 포트 25가 필요하다. 하지만 Vultr 등 일부 VPS 업체는 스팸 방지를 위해 포트 25를 기본적으로 차단한다.

이 경우 두 가지 방법이 있다:

  1. VPS 업체에 포트 25 개방 요청 (1~2일 소요)
  2. Cloudflare Email Routing 사용 (포트 필요 없음) ← 이 글의 방법

Cloudflare Email Routing은 서버 포트와 무관하게 작동하기 때문에, 포트 차단 문제를 우회할 수 있다.

최종 결과 확인

항목 확인 방법
수신 외부에서 contact@내도메인.com으로 메일 보내기 → Gmail 도착
발신 Brevo API로 메일 보내기 → 상대방에게 도메인 이메일로 표시
DNS 인증 Brevo 대시보드에서 도메인 인증 상태 초록색

정리

비즈니스 이메일 무료 구축 순서:

  1. Cloudflare Email Routing 활성화 — 수신 주소 생성 + Gmail 전달
  2. Brevo 가입 + API 키 발급 — 발신 서비스 준비
  3. 발신자 도메인 인증 — Cloudflare DNS에 레코드 4개 추가
  4. 테스트 — 수신/발신 모두 확인

전체 비용은 0원이다. Cloudflare 무료 플랜 + Brevo 무료 플랜으로 하루 300통까지 보낼 수 있다. 블로그 문의 답장 용도로는 충분하다.