Skip to content


Subversion checkout URL

You can clone with
Download ZIP
The Grails Asynchronous Mail plugin
Groovy Java
Branch: master

The Grails Asynchronous Mail plugin


Grails Asynchronous Mail is a plugin for sending email messages asynchronously. It persists email messages to the database with Grails domain classes and sends them by a scheduled Quartz job. Mail is sent on a different thread, with the sendAsynchronousMail (or sendMail) method returning instantly, not waiting for the mail to be actually sent. If the SMTP server isn't available, or other errors occur, the plugin can be set to retry later.

The plugin depends on the quartz and mail plugins. You also need a persistence provider plugin: hibernate, hibernate4 and mongodb are supported.



To install, add the plugin to the plugins block of BuildConfig.groovy:

compile ":asynchronous-mail:1.2"


Full documentation is available at the plugin page.

Also see the sample application at


If you want to contribute to the plugin, open a pull request to the repository

Unit tests are very very sweet things. They help us find bugs, and modify code without adding new bugs. It's very interesting to see how they work. I like to see how they work. What is the better than unit tests? More unit tests! Unit tests are good!

And comments... Comments are good also. They are not better than unit tests, but they are definitely good. If you known Chinese or Arabic, that is good. Seriously. It's awesome! But I don't known them. So write comments in English.

If you want to give me a beer just send some money to


To enable full logging for the plugin, add the following lines to /grails-app/conf/Config.grovy.

log4j = {
    // Enable Asynchronous Mail plugin logging
    trace '',

    // Enable Quartz plugin logging
    debug 'grails.plugins.quartz'

Issue tracking

You can report bugs on JIRA or GitHub. You also can ask me questions by email Please, enable logs and attach them to your issue.

Please, review this project at OpenHUB.

Something went wrong with that request. Please try again.