워드프레스 이메일 시스템 구축 – Cloudflare Email Routing + Brevo API 연동
이메일 시스템 구축 (2026-03-02)
목표
contact@daebakcode.com 이메일 수신 + 관리자 페이지에서 답장 보내기
완료된 작업
1. 이메일 수신 시스템 (Cloudflare Email Routing + Worker)
- Cloudflare Email Routing 활성화 (MX, SPF, DKIM 자동 설정)
- 수신 주소: contact@daebakcode.com
- Gmail 백업: ***************.com으로도 전달
- Cloudflare Email Worker 생성 (daebakcode-email)
- 수신 이메일 파싱 (multipart MIME, base64 UTF-8 디코딩)
- WordPress 웹훅으로 전송 → 관리자 “받은 메시지”에 저장
- Worker 배포:
npx wrangler deploy(Workers & Pages에서 관리) - WordPress 웹훅 엔드포인트 추가 (includes/messages.php)
- POST /wp-json/daebakcode/v1/email-webhook
- 시크릿 키 인증 → daebakcode_message 포스트로 저장
2. 이메일 발송 시스템 (Brevo API)
- Vultr VPS 포트 25 차단 → 직접 메일 발송 불가
- Brevo (무료 300통/일) 가입 및 API 키 발급
- 도메인 인증 (Cloudflare DNS에 4개 레코드 추가)
- TXT: brevo-code (소유권 확인)
- CNAME: brevo1._domainkey, brevo2._domainkey (DKIM)
- TXT: _dmarc (DMARC)
- daebakcode.com 도메인 인증 성공 (Authenticated)
3. 관리자 답장 기능 (admin/messages.php)
- 답장 버튼 + 텍스트 입력 + 보내기 UI
- Brevo API를 통한 이메일 발송 (contact@daebakcode.com 발신)
- API 키 저장 설정 UI (받은 메시지 페이지 하단)
- 발송 성공 시 읽음/답장완료 자동 처리
수정된 파일
includes/messages.php— 웹훅 엔드포인트 + 시크릿 키 초기화admin/messages.php— 답장 AJAX + UI + CSS + Brevo API 키 설정
외부 설정
- Cloudflare: Email Routing + Email Worker + DNS 레코드 (Brevo 인증)
- Brevo: 계정 가입, API 키, 도메인 인증
- Worker 파일:
/tmp/daebakcode-email-worker/index.js
이메일 흐름
[수신]
누군가 → contact@daebakcode.com
→ Cloudflare Email Routing
→ Email Worker (MIME 파싱)
→ WordPress 웹훅 → DB 저장 (받은 메시지)
→ Gmail 백업 전달
[발신]
관리자 → 답장 버튼 → 내용 작성 → 보내기
→ WordPress AJAX → Brevo API
→ contact@daebakcode.com 이름으로 발송
서버 배포 완료
- 테마 파일 scp + tar로 배포
- Brevo API 키 wp option에 저장
- 이메일 수신/발신 테스트 성공