Download GreenMail and Get Started with Email Testing in Minutes
GreenMail Download: How to Test Email-Based Applications with a Virtual Mail Server
If you are a developer who works with email-based applications, services or systems, you know how important it is to test them thoroughly before deploying them to production. However, testing email functionality can be challenging, especially if you don't have access to a live mail server or you don't want to send real emails to real recipients. That's where GreenMail comes in handy.
greenmail download
What is GreenMail and why do you need it?
GreenMail is an intuitive and easy-to-use test suite of email servers for testing purposes. It allows you to send, receive, and verify emails by embedding it 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 such as SMTP, POP3, IMAP with SSL socket support. It also provides configurable user accounts and credentials, so you can simulate different scenarios and cases.
GreenMail features and benefits
Some of the main features and benefits of using GreenMail are:
It is 100% Java-based, so it can run on any platform that supports Java.
It is open source and free to use under the Apache License V2.0.
It is easy to integrate with popular testing frameworks such as JUnit, TestNG, Spring, etc.
It is lightweight and fast, so it does not consume much resources or affect the performance of your application.
It is reliable and secure, so you don't have to worry about spamming, phishing, or data leakage.
GreenMail supported protocols and standards
GreenMail supports the following protocols and standards:
SMTP (Simple Mail Transfer Protocol) for sending emails.
POP3 (Post Office Protocol) for retrieving emails from a server.
IMAP (Internet Message Access Protocol) for accessing and managing emails on a server.
SSL (Secure Sockets Layer) for encrypting the communication between the client and the server.
Jakarta Mail (formerly JavaMail) for providing a platform-independent and protocol-independent framework for sending and receiving emails.
How to download and install GreenMail
Download options and requirements
You can download GreenMail from various sources, depending on your preference and needs. The most common options are:
greenmail download sourceforge
greenmail download github
greenmail download release
greenmail download maven
greenmail download jar
greenmail download docker
greenmail download site
greenmail download example
greenmail download javadoc
greenmail download faq
greenmail test suite download
greenmail email server download
greenmail smtp server download
greenmail imap server download
greenmail pop3 server download
greenmail ssl support download
greenmail user accounts download
greenmail credentials download
greenmail java mail download
greenmail jakarta mail download
greenmail spring integration download
greenmail junit integration download
greenmail webapp integration download
greenmail client integration download
greenmail standalone integration download
greenmail mock mail server download
greenmail sandbox mail server download
greenmail virtual mail server download
greenmail email testing tool download
greenmail email verification tool download
greenmail email development tool download
greenmail email simulation tool download
greenmail email debugging tool download
greenmail email mocking tool download
how to download and install greenmail
how to use greenmail in java project
how to configure greenmail in spring boot application
how to run greenmail as a docker container
how to build greenmail from source code
how to generate maven site for greenmail project
how to deploy a release of greenmail project
how to contribute to greenmail project on github
how to report issues and bugs for greenmail project
how to access the web interface of greenmail server
how to send and receive emails using greenmail server
how to verify emails using greenmail api
how to create and delete users using greenmail api
how to enable and disable ssl using greenmail api
how to set custom ports using greenmail api
The official website: [1](
The GitHub repository: [2](
The Maven Central repository: com.icegreen:greenmail:
The latest version of GreenMail at the time of writing this article is 2.1.0-alpha-1, which is based on Jakarta Mail 2.1 / Jakarta EE 10. However, you can also use older versions that are compatible with different versions of JavaMail or Jakarta Mail.
To run GreenMail, you need to have Java 11 or higher installed on your system. You also need to have Maven 3.8 or higher if you want to build GreenMail from source or use it as a Maven dependency.
Installation steps and configuration
The installation steps vary depending on how you want to use GreenMail. Here are some common scenarios:
ScenarioStepsScenario
Steps
Embedding GreenMail in a unit testAdd GreenMail as a Maven dependency in your pom.xml file.
Create a GreenMail instance with the desired configuration (e.g. port, user, password, etc.) in your test class.
Start and stop the GreenMail server in the @Before and @After methods of your test class.
Use the GreenMail API to send, receive, and verify emails in your test methods.
Running GreenMail as a standalone containerDownload the greenmail-standalone-.jar file from the official website or GitHub repository.
Run the jar file with the java -jar command and specify the desired options (e.g. port, user, password, etc.).
Use an email client (e.g. Thunderbird, Outlook, etc.) or a web browser to connect to the GreenMail server and send, receive, and verify emails.
Using GreenMail as a Docker imagePull the greenmail/standalone image from the Docker Hub repository.
Run the image with the docker run command and specify the desired options (e.g. port, user, password, etc.).
Use an email client (e.g. Thunderbird, Outlook, etc.) or a web browser to connect to the GreenMail server and send, receive, and verify emails.
How to use GreenMail for testing email-based applications
Once you have installed and configured GreenMail, you can use it for testing various aspects of your email-based applications. Here are some examples of how to use GreenMail for different purposes:
Embedding GreenMail in a unit test
If you want to test your email functionality in isolation from other components or dependencies, you can embed GreenMail in a unit test and use it as a mocking or stubbing tool. For example, you can use GreenMail to test how your application sends an email confirmation after a user registration or how it handles an incoming email request. Here is a sample code snippet that shows how to embed GreenMail in a JUnit test:
import com.icegreen.greenmail.junit5.GreenMailExtension; import com.icegreen.greenmail.util.GreenMailUtil; import com.icegreen.greenmail.util.ServerSetupTest; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; import javax.mail.internet.MimeMessage; import static org.junit.jupiter.api.Assertions.assertEquals; public class EmailTest // Create a GreenMail extension with SMTP and IMAP support @RegisterExtension static GreenMailExtension greenMail = new GreenMailExtension(ServerSetupTest.SMTP_IMAP); @Test public void testSendAndReceiveEmail() throws Exception // Define the sender and receiver addresses String sender = "test@example.com"; String receiver = "user@example.com"; // Send an email using GreenMail's utility method GreenMailUtil.sendTextEmailTest(receiver, sender, "Hello", "This is a test email"); // Wait for the email to arrive greenMail.waitForIncomingEmail(1); // Retrieve the email using IMAP MimeMessage[] messages = greenMail.getReceivedMessages(); // Verify the email content assertEquals(1, messages.length); assertEquals("Hello", messages[0].getSubject()); assertEquals("This is a test email", GreenMailUtil.getBody(messages[0]));
Running GreenMail as a standalone container
If you want to test your email functionality in integration with other components or dependencies, you can run GreenMail as a standalone container and use it as a sandbox or simulator tool. For example, you can use GreenMail to test how your application interacts with an external mail server or how it handles different mail protocols. Here is a sample command that shows how to run GreenMail as a standalone container:
java -jar greenmail-standalone-2.1.0-alpha-1.jar -Dgreenmail.setup.test.all -Dgreenmail.users=test1:pwd1@test.com,test2:pwd2@test.com -Dgreenmail.verbose
This command will start a GreenMail server with SMTP, POP3, IMAP and SSL support on the default ports. It will also create two user accounts: test1@test.com with password pwd1 and test2@test.com with password pwd2. It will also enable verbose logging for debugging purposes.
You can You can then use an email client (e.g. Thunderbird, Outlook, etc.) or a web browser to connect to the GreenMail server and send, receive, and veri