개발 환경에서 메일을 테스트하려면 진짜 메일을 보내기보다는, 가짜 SMTP 서버를 통해 메일을 확인하는 것이 훨씬 안전하고 효율적입니다.
Mailpit은 이런 상황에서 최적의 툴입니다. 오늘은 Mac 환경 기준으로 Mailpit 설치부터 Laravel 연동까지 한 번에 정리해보겠습니다.
🧰 Mailpit 이란?
Mailpit은 로컬 SMTP 서버이자 메일 뷰어입니다. 메일을 진짜로 전송하지 않고도, 웹 UI를 통해 메일 내용을 확인할 수 있습니다.
Mailhog의 대체제이자 업그레이드 버전이라고 보면 됩니다.
📦 1. Mailpit 설치 (macOS)
Homebrew로 간편하게 설치할 수 있습니다.
brew install mailpit
설치가 완료되면 아래 명령어로 정상 설치 여부를 확인할 수 있습니다:
mailpit --version
🚀 2. Mailpit 서버 실행
Mailpit은 기본적으로 아래 포트를 사용합니다:
- 📮 SMTP 서버: localhost:1025
- 🌐 웹 UI: http://localhost:8025
▶ 실시간 실행 (현재 터미널)
mailpit
▶ 백그라운드에서 실행
mailpit &
이렇게 실행하면 터미널을 닫아도 계속 백그라운드에서 동작합니다.
종료할 땐 다음처럼 프로세스를 찾아서 종료하면 됩니다:
ps aux | grep mailpit
kill [PID] # 예: kill 12345
♻ 또는: brew 서비스로 실행
부팅 시 자동 실행되게 하고 싶다면 아래처럼 등록할 수 있습니다:
brew services start mailpit
중지하려면:
brew services stop mailpi
현재 상태 확인:
brew services list
⚙️ 3. Laravel SMTP 설정 (.env)
이제 Laravel 프로젝트의 .env 파일에서 메일 설정을 아래처럼 구성합니다:
MAIL_MAILER=smtp
MAIL_HOST=127.0.0.1
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=hello@example.com
MAIL_FROM_NAME="Your App"
설정 후 캐시를 지워줘야 적용됩니다:
php artisan config:clea
✉️ 4. 메일 전송 테스트
예를 들어 아래처럼 테스트 컨트롤러나 tinker에서 테스트해보세요:
use Illuminate\Support\Facades\Mail;
Mail::raw('Mailpit 메일 테스트입니다.', function ($message) {
$message->to('test@example.com')
->subject('Mailpit 테스트');
});
http://localhost:8025 에서 메일이 정상 수신되는지 확인합니다.
HTML, 텍스트, 첨부파일도 지원합니다.
📝 추가 팁
📌 포트 변경
다른 서비스와 충돌 시 포트를 변경하여 실행 가능합니다:
mailpit --smtp 2525 --web 8081
📌 로그 보기
mailpit --log-level debug
📌 테스트 자동화 연동
Mailpit은 REST API를 제공하므로 테스트 코드에서 수신된 메일을 검증하는 용도로도 활용할 수 있습니다. (예: /api/v1/messages 엔드포인트)
✅ 마무리
Mailpit은 로컬에서 메일 기능을 테스트할 때 필수 도구입니다.
설치가 간단하고 UI가 직관적이며, Laravel 환경과도 잘 맞습니다.
'Laravel' 카테고리의 다른 글
[Laravel & AWS] Laravel에서 AWS Bedrock 적용하기 - 생성형 AI 실전 연동 가이드 (0) | 2025.02.19 |
---|---|
[Laravel 라라벨] 테이블 간 관계에서 외래 키를 명시해야하는 이유 (0) | 2025.02.06 |
[Laravel 라라벨] Eloquent - attribute, method 접근 (0) | 2025.01.29 |
[Laravel 라라벨] Morph() 다형성 (0) | 2025.01.27 |
[Laravel] 환경설정 (1) | 2025.01.26 |
댓글