GreenMail allows developers to test email-based applications, services or systems without access to a live mail server. Developers can send, receive, and verify emails by embedding GreenMail in a unit test or running it as a standalone container. GreenMail acts as a virtual (mocking/sandbox) mail server and supports common mail protocols SMTP, IMAP and POP3.
The separate GreenMail Client Integrations project provides a containerized example integration of GreenMail with various web mail clients.
The GreenMail project welcomes any contribution, so go ahead and fork/open a pull request! See the guidelines below.
GreenMail | Mail API | Example frameworks |
---|---|---|
2.1.x | JakartaMail 2.1.x | Jakarta EE 10 |
2.0.x | JakartaMail 2.0.x | Jakarta EE 9, Spring 6, |
1.6.x | JakartaMail 1.6.x | Jakarta EE 8, Spring 5, Apache commons-mail 1.6, ... |
Build GreenMail from source
mvn clean install -Pdocker
This project uses Maven Wrapper for consistent build using Maven 3.9.x or higher, and requires JDK 11 or newer for building.
-Pdocker
profile option-DskipITs
Build the Maven site (and the optional example report)
mvn site -Psite
Build and deploy a release
For rolling a release including version increment and release upload, do
mvn clean release:prepare -Prelease,release-ossrh,docker,docker-tag-latest
mvn release:perform -Prelease,release-ossrh,docker,docker-tag-latest
For a tagged release and deployment to Sonatype OpenSource Repository Hosting and later syncing to Maven Central, do
mvn clean deploy -Prelease,release-ossrh,docker,docker-tag-latest
Note: Do only use docker-tag-latest profile if you really want the tag latest, e.g. for newest release of the highest version.
Build and deploy a snapshot
For a Maven Snapshot deployment to Sonatype, do
mvn clean deploy -Prelease-ossrh,docker
We really appreciate your contribution!
Please check out the contributing guide.
Many thanks to JProfiler and Jetbrains for supporting this project with free OSS licenses