소개
smtp4dev은 개발 및 테스트용 가짜 SMTP 이메일 서버로, 실제 고객에게 스팸을 보내지 않고 애플리케이션의 이메일 기능을 테스트할 수 있게 해줍니다. rnwood에서 개발한 이 도구는 Windows, Linux, macOS에서 .NET Core를 지원하는 환경에서 실행됩니다. 웹 인터페이스, 터미널 사용자 인터페이스(TUI), IMAP/POP3 접근, API, HTML 이메일 렌더링 및 호환성 보고서 등 다양한 고급 기능을 제공합니다.
상세정보
웹 인터페이스 및 터미널 사용자 인터페이스(TUI)
고급 웹 인터페이스를 통해 브라우저에서 이메일을 확인, 검색, 관리할 수 있으며, 터미널에서 전체 기능을 갖춘 TUI 모드로도 실행할 수 있어 서버 환경이나 원격 접속 시 유용합니다.
IMAP 및 POP3 지원
표준 이메일 프로토콜인 IMAP과 POP3을 통해 수신된 메시지를 조회하고 삭제할 수 있어, 실제 이메일 클라이언트처럼 동작을 테스트할 수 있습니다.
API 및 OpenAPI/Swagger 문서
RESTful API를 제공하며 OpenAPI/Swagger 문서를 통해 프로그래밍 방식으로 메일 목록 조회, 메시지 전송, 삭제 등을 자동화할 수 있어 CI/CD 파이프라인과의 통합에 적합합니다.
HTML 이메일 렌더링 및 호환성 분석
HTML 이메일을 리치 포맷으로 렌더링하여 표시하고, 다양한 이메일 클라이언트에서의 호환성을 분석하는 보고서를 생성하여 반응형 디자인과 클라이언트 호환성을 테스트할 수 있습니다.
TLS/SSL 및 인증 지원
암호화된 연결을 위한 TLS/SSL을 지원하며, STARTTLS 및 암시적 TLS 모드와 자동 자체 서명 인증서 생성을 제공합니다. 또한 인증을 통해 보안된 접근을 제어할 수 있습니다.
다중 사서함 및 메시지 중계 규칙
여러 사서함을 생성하고, 규칙을 설정하여 특정 조건에 따라 메시지를 다른 사서함으로 이동하거나 실제 SMTP 서버로 중계할 수 있어 복잡한 테스트 시나리오를 구현할 수 있습니다.
메시지 작성, 답장 및 중계
웹 인터페이스에서 새로운 이메일을 작성하거나 수신된 메시지에 답장을 보내고, 규칙에 따라 자동으로 중계할 수 있어 시뮬레이션된 이메일 흐름을 테스트할 수 있습니다.
스크립팅 및 오류 시뮬레이션
표현식 기반 스크립팅을 통해 오류 조건을 시뮬레이션하고, 다양한 실패 시나리오를 테스트하여 애플리케이션의 복원력을 검증할 수 있습니다.
다운로드 및 설치 방법
공식 GitHub 저장소에서 소스 코드를 다운로드하거나, Chocolatey를 통해 choco install smtp4dev 명령으로 Windows에 간편하게 설치할 수 있습니다. 배포 형태는 ZIP 파일로 제공되며, 압축을 해제한 후 실행 파일을 실행하면 됩니다.
기본 사용법
설치 후 smtp4dev을 실행하면 기본적으로 로컬 호스트의 25번 포트에서 SMTP 서버가 시작됩니다. 웹 인터페이스는 http://localhost:5000에서 접근할 수 있으며, TUI 모드는 터미널에서 직접 실행하여 사용할 수 있습니다. 애플리케이션은 이 SMTP 서버를 대상으로 메일을 보내도록 설정하면, 전송된 메시지는 모두 smtp4dev 인터페이스에서 확인할 수 있습니다.
이런 경우에 유용합니다
애플리케이션 개발 중에 이메일 발송 기능을 테스트해야 할 때, 실제 고객에게 테스트 메일이 가지 않도록 안전하게 검증할 수 있습니다. 특히 이메일 템플릿, 알림 시스템, 비밀번호 재설정 흐름 등을 개발하는 팀에게 유용하며, 반응형 이메일 디자인의 호환성을 뷰포트 시뮬레이터로 테스트할 수 있습니다.
지원 환경·시스템 요구사항
Windows 10 이상, Linux 배포본, macOS에서 .NET 10 런타임이 설치된 환경에서 실행 가능합니다. Docker를 통해서도 쉽게 배포 및 실행할 수 있으며, 크로스플랫폼 지원을 통해 다양한 개발 환경에서 일관되게 사용할 수 있습니다.
최신 버전·업데이트
버전 3.15.0은 .NET 10 기반으로 업데이트되어 성능과 보안이 향상되었으며, 웹 인터페이스와 TUI의 안정성이 개선되었습니다. 최신 릴리즈 정보는 GitHub 저장소의リリース 페이지에서 확인할 수 있습니다.
제한 사항·확인 사항
Docker로 실행 시, 보안 가이드라인에 따라 공개 포트로 노출되지 않도록 주의해야 하며, 의도치 않게 외부에서 접근 가능한 상태가 되지 않도록 설정해야 합니다. 이는 내부 개발 환경에서의 사용을 전제로 하며, 프로덕션 환경에서의 직접적인 사용은 권장되지 않습니다.
시스템 요구사항
.NET Core가 설치된 환경에서 실행 가능하며, Windows, Linux, macOS를 지원합니다.


