All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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