
org.ow2.bonita.mail.EmailHook Maven / Gradle / Ivy
package org.ow2.bonita.mail;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.ow2.bonita.definition.Hook;
import org.ow2.bonita.facade.QueryAPIAccessor;
import org.ow2.bonita.facade.runtime.ActivityBody;
import org.ow2.bonita.facade.runtime.ActivityInstance;
public abstract class EmailHook implements Hook {
private static final String CHARACTER_ENCODING = "UTF-8";
/**
*
* @param accessor giving access to {@link org.ow2.bonita.facade.QueryDefinitionAPI}
* and {@link org.ow2.bonita.facade.QueryRuntimeAPI} interfaces.
* @param activityInstance the activityInstance available into the hook.
* @return Properties a set of properties containing the values for the property keys:
* mail.subject, mail.smtp.host, mail.to, mail.from, mail.body.
*/
public abstract Properties getEmailProperties(QueryAPIAccessor accessor,
ActivityInstance activityInstance) throws Exception;
public void execute(QueryAPIAccessor accessor, ActivityInstance activityInstance) throws Exception {
Properties emailProperties = getEmailProperties(accessor,activityInstance);
Session session = Session.getInstance(emailProperties, null);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(emailProperties.getProperty("mail.from")));
Address[] to = new InternetAddress[] {new InternetAddress(emailProperties.getProperty("mail.to")) };
message.setRecipients(javax.mail.Message.RecipientType.TO, to);
message.setSubject(emailProperties.getProperty("mail.subject"));
message.setSentDate(new java.util.Date());
message.setContent(emailProperties.getProperty("mail.body"),"text/plain;charset=" + CHARACTER_ENCODING);
Transport.send(message);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy