1 package com.panogenesis.service;
2
3 import java.util.Map;
4
5 import org.apache.commons.logging.Log;
6 import org.apache.commons.logging.LogFactory;
7 import org.apache.velocity.app.VelocityEngine;
8 import org.apache.velocity.exception.VelocityException;
9 import org.springframework.mail.MailException;
10 import org.springframework.mail.MailSender;
11 import org.springframework.mail.SimpleMailMessage;
12 import org.springframework.ui.velocity.VelocityEngineUtils;
13
14
15 public class MailEngine {
16 protected static final Log log = LogFactory.getLog(MailEngine.class);
17 private MailSender mailSender;
18 private VelocityEngine velocityEngine;
19
20 public void setMailSender(MailSender mailSender) {
21 this.mailSender = mailSender;
22 }
23
24 public void setVelocityEngine(VelocityEngine velocityEngine) {
25 this.velocityEngine = velocityEngine;
26 }
27
28 public void sendMessage(SimpleMailMessage msg, String templateName, Map model) {
29 String result = null;
30
31 try {
32 result =
33 VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,
34 templateName,
35 model);
36 } catch (VelocityException e) {
37 e.printStackTrace();
38 }
39
40 msg.setText(result);
41 send(msg);
42 }
43
44 public void send(SimpleMailMessage msg) {
45 try {
46 mailSender.send(msg);
47 } catch (MailException ex) {
48
49 log.error(ex.getMessage());
50 }
51 }
52 }