Greenmail grails 2

A blast from the past!

GreenMail is a popular testing tool for Grails applications, and it's still widely used today. Here's a brief overview of how to use GreenMail with Grails 2:

What is GreenMail?

GreenMail is a Java-based email testing tool that allows you to test your Grails application's email functionality by sending and receiving emails. It's particularly useful for testing email notifications, password reset emails, and other email-related features.

Setting up GreenMail with Grails 2

To use GreenMail with Grails 2, you'll need to follow these steps:

  1. Add the GreenMail dependency: Add the following dependency to your BuildConfig.groovy file:

    dependencies {
     runtime 'com.icegreen:greenmail:1.5.4'
    }
  2. Configure GreenMail: Create a greenmail.properties file in the root of your project with the following configuration:

    greenmail.pop3.host=localhost
    greenmail.pop3.port=110
    greenmail.smtp.host=localhost
    greenmail.smtp.port=2525

    This configuration sets up GreenMail to use a local POP3 and SMTP server.

  3. Create a GreenMail instance: In your Grails test class, create a GreenMail instance and start the server:

    
    import com.icegreen.greenmail.junit.GreenMailRule
    import com.icegreen.greenmail.util.GreenMail

class MyTest extends GroovyTestCase { @Rule public GreenMailRule greenMailRule = new GreenMailRule(2, true)

void testMyEmailFeature() {
    // Your test code here
}

}

The `GreenMailRule` class starts the GreenMail server and provides a way to access the emails sent during the test.

4. **Send and receive emails**: In your test code, use the GreenMail instance to send and receive emails:
```groovy
def mailMessage = new MimeMessage()
mailMessage.setFrom(new InternetAddress("[email protected]"))
mailMessage.setSubject("Test Email")
mailMessage.setText("This is a test email")

greenMailRule.start()
greenMailRule.sendMail(mailMessage)

def emails = greenMailRule.getReceivedMessages()
assert emails.size() == 1

In this example, we create a MimeMessage object and set its properties. We then send the email using the sendMail method and retrieve the received emails using the getReceivedMessages method.

Tips and Tricks

By following these steps, you should be able to use GreenMail with Grails 2 to test your application's email functionality. Happy testing!