Package $

Source Code of $.MailEngine

package ${package}.service;

import javax.mail.internet.MimeMessage;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.mail.MailException;
import org.springframework.mail.MailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;

import freemarker.template.Configuration;

public class MailEngine {
  protected static final Log logger = LogFactory.getLog(MailEngine.class);

  private MailSender mailSender;

  private Configuration freemarkerConfig;

  public void setMailSender(MailSender mailSender) {
    this.mailSender = mailSender;
  }

  public void setFreemarkerConfig(Configuration freemarkerConfig) {
    this.freemarkerConfig = freemarkerConfig;
  }

  public void sendMessage(String template, Object model,
      final String fromAddress, final String fromName,
      final String toAddress, final String toName, final String subject) {
    sendMessage(template, model, new MailEngineCallback() {
      public void setMail(MimeMessageHelper helper) throws Exception {
        helper.setFrom(fromAddress, fromName);
        helper.addTo(toAddress, toName);
        helper.setSubject(subject);
      }
    });
  }

  public void sendMessage(String template, Object model,
      MailEngineCallback action) {
    MimeMessage message = ((JavaMailSenderImpl) mailSender)
        .createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message);
    try {
      action.setMail(helper);
    } catch (Exception e) {
      if (logger.isDebugEnabled()) {
        logger.error(e.getMessage());
      }
    }
    if (template != null) {
      try {
        helper.setText(getMailText(template, model), true);
      } catch (Exception e) {
        if (logger.isDebugEnabled()) {
          logger.error(e.getMessage());
        }
      }
    }
    send(message);
  }

  public void send(MimeMessage msg) {
    try {
      ((JavaMailSenderImpl) mailSender).send(msg);
    } catch (MailException e) {
      logger.error(e.getMessage());
    }
  }

  private String getMailText(String template, Object model) {
    try {
      return FreeMarkerTemplateUtils.processTemplateIntoString(
          freemarkerConfig.getTemplate(template), model);
    } catch (Exception e) {
      if (logger.isDebugEnabled()) {
        logger.error(e.getMessage());
      }
    }
    return null;
  }

}
TOP

Related Classes of $.MailEngine

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.