Written by K15T
Thursday, 09 September 2010 14:47
Plugins -
K15T
Confluence provides a great infrastructure for doing all kinds of things in plugins. One requirement I came across a few times is sending emails from Confluence, which I will explain in this article.
There are two ways of sending emails in Confluence:
1. Synchronous
2. Asynchronous using a mail queue
I will explain option 2, as synchronous sending will make the user wait until the email is sent to the mail server. Asynchronous sending is implemented using a queuing mechanism, and will send the email every 60 seconds. This implementation build on the com.atlassian.core.task.MultiQueueTaskManager which can be injected as a dependency by the Confluence plugin system. After that it is very easy to send emails:
:
String emailText = "Email Text with HTML";
ConfluenceMailQueueItem item = new ConfluenceMailQueueItem(
contact.getEmail(),
null,
subject,
emailText,
ConfluenceMailQueueItem.MIME_TYPE_HTML);
item.setFromName("Example Inc.");
item.setFromAddress("
This e-mail address is being protected from spambots. You need JavaScript enabled to view it
");
taskManager.addTask("mail", item);
:
For rendering the email text from templates the VelocityManager is quite handy, which I will explain in another post.
Read original blog