AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

No Mailtrap, No Problem! (with Docker)

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

  • 웹 개발자 (Laravel, Next.js, Django 프레임워크 사용자)
  • Docker 환경에서 이메일 테스트를 수행하는 개발자
  • 로컬 개발 환경에서 외부 서비스 의존 없이 이메일 테스트를 수행하고자 하는 사람
  • 난이도: 중간 (Docker 기본 지식, 프레임워크 설정 경험 필요)

핵심 요약

  • Mailhog는 SMTP 서버와 웹 UI를 제공하는 오픈소스 이메일 테스트 도구로, Docker를 통해 빠르게 설정 가능
  • Docker 명령어 docker run -d --name mailhog -p 1025:1025 -p 8025:8025 mailhog/mailhog로컬 환경에서 이메일 테스트 서버 실행
  • Laravel, Next.js, Django에서 Mailhog를 사용할 때 SMTP 설정 변경이 필요 (예: MAIL_HOST=localhost, EMAIL_HOST=localhost)

섹션별 세부 요약

1. Mailhog 소개 및 설치

  • Mailhog는 SMTP 서버와 웹 UI를 제공하는 이메일 테스트 도구로, Mailtrap 대체 옵션
  • Docker를 사용하면 환경 일관성 유지시스템 충돌 방지 가능
  • Docker 명령어 실행 후 http://localhost:8025에서 웹 UI 접근 가능

2. Docker 기반 Mailhog 실행

  • docker run 명령어를 사용하여 Mailhog 컨테이너 실행
  • 포트 매핑: 1025 (SMTP), 8025 (웹 UI)
  • Windows 사용자는 Docker Desktop UI에서 컨테이너 확인 가능

3. Laravel 설정

  • .env 파일에서 SMTP 설정 변경 (예: MAIL_HOST=localhost, MAIL_PORT=1025)
  • Tinkerwell 또는 라우트를 통해 이메일 테스트 수행
  • 예시: php artisan tinker에서 Mail::raw() 사용

4. Next.js (Nodemailer) 설정

  • npm install nodemailer로 라이브러리 설치
  • API 라우트 (pages/api/send-mail.js)에서 Nodemailer 설정 및 이메일 전송
  • curl -X POST 명령어로 테스트 가능

5. Django 설정

  • settings.py에서 SMTP 설정 변경 (예: EMAIL_HOST=localhost, EMAIL_PORT=1025)
  • Django 쉘 또는 관리 명령어를 통해 이메일 전송 테스트
  • 예시: send_mail() 함수 사용

6. 이메일 확인 및 검증

  • Mailhog 웹 UI (http://localhost:8025)에서 전송된 이메일 확인
  • 각 프레임워크별 테스트 결과 로그 및 UI 기반 검증 가능

결론

  • Docker 기반 Mailhog 사용으로 외부 서비스 없이 이메일 테스트 가능
  • Laravel, Next.js, Django에서 간단한 설정으로 Mailhog 통합 가능
  • 로컬 개발 환경에서 이메일 기능 테스트 시 Mailhog 추천 (No Mailtrap, No Problem!)