위키득계정 ↗
기술

GreenMail

GreenMail기술
분야
이메일 테스트
지원 프로토콜
SMTP와 IMAP 및 POP3
실행 방식
내장 또는 독립 실행
목적
격리된 메일 검사 환경
GreenMail은 실제 운영 메일 서버 없이 이메일 기능을 검사하도록 돕는 가상 메일 서버다. 자바 테스트에 포함하거나 독립 실행해 메시지의 발송과 수신, 내용을 확인할 수 있다.

메일 기능을 분리해 검사하기

회원 안내나 알림 메일 검사는 실제 수신함에 계속 메시지를 보내는 방식으로 구성하기 어렵다. GreenMail을 테스트용 서버로 사용하면 애플리케이션이 만든 메일을 별도의 환경에서 확인할 수 있다. 보낼 주소와 서버 연결을 테스트용으로 지정하고 실제 사용자에게 전달되지 않도록 실행 범위를 분리한다.

발송과 읽기 경로

SMTP로 전달한 메시지를 확인하는 것 외에 IMAP과 POP3 같은 메일 읽기 프로토콜도 지원한다. 테스트 안에서 서버 수명 주기를 관리하거나 컨테이너로 실행하는 방식 중 환경에 맞는 구성을 선택한다. 메일이 비동기로 만들어진다면 도착을 기다리는 조건과 제한 시간을 정하고 메시지를 검사해야 한다.

호환성과 검증의 한계

GreenMail 계열에 따라 대응하는 Jakarta Mail API와 프레임워크 범위가 다르다. 이름이 비슷한 패키지를 섞기보다 프로젝트가 사용하는 메일 API 세대와 맞춘다. 가상 서버에 메시지가 도착했다는 결과는 실제 외부 메일 서비스의 전달 가능성이나 스팸 분류를 보장하지 않는다. 내용 검사와 실제 전달 환경 검사는 목적을 구분한다.

관련 문서

Mailpit / JUnit / Testcontainers 자바 / Awaitility