본문 바로가기
Laravel

🚀Mac에서 Mailpit 설치하고 Laravel SMTP 테스트 환경 구축하기

by seeder 2025. 6. 17.
728x90

개발 환경에서 메일을 테스트하려면 진짜 메일을 보내기보다는, 가짜 SMTP 서버를 통해 메일을 확인하는 것이 훨씬 안전하고 효율적입니다.

Mailpit은 이런 상황에서 최적의 툴입니다. 오늘은 Mac 환경 기준으로 Mailpit 설치부터 Laravel 연동까지 한 번에 정리해보겠습니다.


🧰 Mailpit 이란?

Mailpit은 로컬 SMTP 서버이자 메일 뷰어입니다. 메일을 진짜로 전송하지 않고도, 웹 UI를 통해 메일 내용을 확인할 수 있습니다.

Mailhog의 대체제이자 업그레이드 버전이라고 보면 됩니다.


📦 1. Mailpit 설치 (macOS)

Homebrew로 간편하게 설치할 수 있습니다.

brew install mailpit

설치가 완료되면 아래 명령어로 정상 설치 여부를 확인할 수 있습니다:

mailpit --version

🚀 2. Mailpit 서버 실행

Mailpit은 기본적으로 아래 포트를 사용합니다:

▶ 실시간 실행 (현재 터미널)

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 환경과도 잘 맞습니다.

 
728x90

댓글