View Javadoc

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              //log it and go on
49              log.error(ex.getMessage());
50          }   
51      }
52  }