Advertisement
Guest User

Untitled

a guest
May 12th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.46 KB | None | 0 0
  1. package id.bixsoft.hcms.config;
  2.  
  3. import java.util.EnumSet;
  4. import javax.servlet.DispatcherType;
  5. import javax.servlet.FilterRegistration;
  6. import javax.servlet.ServletContext;
  7. import javax.servlet.ServletException;
  8. import javax.servlet.ServletRegistration;
  9. import org.springframework.orm.hibernate5.support.OpenSessionInViewFilter;
  10. import org.springframework.web.WebApplicationInitializer;
  11. import org.springframework.web.context.ContextLoaderListener;
  12. import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
  13. import org.springframework.web.servlet.DispatcherServlet;
  14.  
  15. /**
  16. * @author ETS Roby
  17. * Issue : Create Email Sending
  18. * Created on : April 13, 2016
  19. */
  20.  
  21. public class ApplicationInitializer implements WebApplicationInitializer {
  22.  
  23. @Override
  24. public void onStartup(ServletContext sc) throws ServletException {
  25. AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
  26.  
  27. rootContext.register(MvcApplication.class, EmailConfig.class);
  28. rootContext.setServletContext(sc);
  29. rootContext.refresh();
  30.  
  31. DispatcherServlet mvcServlet = new DispatcherServlet(rootContext);
  32. ServletRegistration.Dynamic appServlet = sc.addServlet("appServlet", mvcServlet);
  33.  
  34. appServlet.setLoadOnStartup(1);
  35. appServlet.addMapping("/");
  36.  
  37. OpenSessionInViewFilter coreSessionFilter = new OpenSessionInViewFilter();
  38. OpenSessionInViewFilter portalSessionFilter = new OpenSessionInViewFilter();
  39.  
  40. coreSessionFilter.setSessionFactoryBeanName("coreSessionFactory");
  41. portalSessionFilter.setSessionFactoryBeanName("portalSessionFactory");
  42.  
  43. EnumSet<DispatcherType> dispatcherTypes = EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD);
  44. FilterRegistration.Dynamic coreSessionInView = sc.addFilter("coreSessionInView", coreSessionFilter);
  45. coreSessionInView.addMappingForUrlPatterns(dispatcherTypes, true, "/");
  46.  
  47. FilterRegistration.Dynamic portalSessionInView = sc.addFilter("portalSessionInView", portalSessionFilter);
  48. portalSessionInView.addMappingForUrlPatterns(dispatcherTypes, true, "/");
  49.  
  50. sc.addListener(new ContextLoaderListener(rootContext));
  51. sc.setInitParameter("defaultHtmlEscape", "true");
  52. }
  53. }
  54.  
  55. package id.bixsoft.hcms.config;
  56.  
  57. import java.util.Properties;
  58. import org.springframework.beans.factory.annotation.Configurable;
  59. import org.springframework.mail.javamail.JavaMailSender;
  60. import org.springframework.mail.javamail.JavaMailSenderImpl;
  61. import org.springframework.context.annotation.Bean;
  62.  
  63. /**
  64. * @author ETS Roby
  65. * Issue : Create Email Sending
  66. * Created on : April 13, 2016
  67. */
  68.  
  69. @Configurable
  70. public class EmailConfig {
  71. @Bean
  72. public JavaMailSender javaMailSender(){
  73.  
  74. Properties javaMailProperties = new Properties();
  75. javaMailProperties.put("mail.transport.protocol", "smtp");
  76. javaMailProperties.put("mail.smtp.auth", true);
  77. javaMailProperties.put("mail.smtp.ssl.enable", true);
  78. javaMailProperties.put("mail.debug", true);
  79. javaMailProperties.put("mail.smtp.fromemail","no-reply@bixsoft.id");
  80.  
  81. JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
  82. mailSender.setProtocol("smtp");
  83. mailSender.setHost("192.168.45.88");
  84. mailSender.setPort(25);
  85. mailSender.setUsername("username");
  86. mailSender.setPassword("password");
  87. mailSender.setJavaMailProperties(javaMailProperties);
  88.  
  89. return mailSender;
  90. }
  91. }
  92.  
  93. package id.bixsoft.hcms.controllers.competency;
  94.  
  95. import id.bixsoft.hcms.forms.KaryawanForm;
  96. import java.util.Properties;
  97. import javax.mail.Message;
  98. import javax.mail.PasswordAuthentication;
  99. import javax.mail.Session;
  100. import javax.mail.Transport;
  101. import javax.mail.internet.InternetAddress;
  102. import javax.mail.internet.MimeMessage;
  103. import javax.servlet.ServletContext;
  104. import javax.servlet.http.HttpSession;
  105.  
  106. import org.springframework.beans.factory.annotation.Autowired;
  107. import org.springframework.mail.javamail.JavaMailSender;
  108. import org.springframework.mail.javamail.JavaMailSenderImpl;
  109. import org.springframework.stereotype.Controller;
  110. import org.springframework.ui.ModelMap;
  111. import org.springframework.ui.Model;
  112. import org.springframework.web.bind.annotation.ModelAttribute;
  113. import org.springframework.web.bind.annotation.RequestMapping;
  114. import org.springframework.web.bind.annotation.RequestMethod;
  115. import org.springframework.web.servlet.ModelAndView;
  116.  
  117. import id.bixsoft.hcms.forms.competency.EmailForm;
  118. import id.bixsoft.hcms.util.GlobalParameter;
  119.  
  120. /**
  121. * @author ETS Roby
  122. * Issue : Create Email Sending
  123. * Created on : April 13, 2016
  124. */
  125.  
  126. @Controller
  127. @RequestMapping(value = "/competency")
  128. public class EmailController {
  129. @Autowired
  130. ServletContext context;
  131. @Autowired
  132. JavaMailSender javaMailSender;
  133.  
  134. @RequestMapping(value = "/create_email", method = RequestMethod.GET)
  135. public ModelAndView showEmailForm(HttpSession session, Model model) {
  136. model.addAttribute("karyawan", new KaryawanForm());
  137. model.addAttribute("email", new EmailForm());
  138. if(session.getAttribute(GlobalParameter.SESSION) != null){
  139. return new ModelAndView("competency/create_email");
  140. }
  141. return new ModelAndView ("competency/success_email");
  142. }
  143.  
  144. @RequestMapping(value = "/send_email", method = RequestMethod.POST)
  145. public ModelAndView sendEmail(ModelMap model, @ModelAttribute("email") EmailForm emailForm) {
  146. try {
  147. final JavaMailSenderImpl mailSender = (JavaMailSenderImpl) javaMailSender;
  148. //get email server information from config xml file
  149. Properties props = mailSender.getJavaMailProperties();
  150. final String username = mailSender.getUsername();
  151. final String password = mailSender.getPassword();
  152. //get from email is username
  153. String fromEmail = mailSender.getJavaMailProperties().get("mail.smtp.fromemail").toString();
  154. emailForm.setFrom(fromEmail);
  155.  
  156. //need authenticate to server
  157. Session session = Session.getInstance(props,
  158. new javax.mail.Authenticator() {
  159. @Override
  160. protected PasswordAuthentication getPasswordAuthentication() {
  161. return new PasswordAuthentication(username, password);
  162. }
  163. });
  164.  
  165. //create session authenticated to send email
  166. MimeMessage message = new MimeMessage(session);
  167. message.setFrom(new InternetAddress(emailForm.getFrom()));
  168. message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(emailForm.getTo()));
  169. message.setSubject(emailForm.getSubject(),"UTF-8");
  170. message.setText(emailForm.getBody());
  171. //call send email function
  172. Transport.send(message);
  173. //mailSender.send(message);
  174. } catch (Exception ex) {
  175. model.addAttribute("error", ex.getMessage());
  176. return new ModelAndView ("competency/create_email");
  177. }
  178. return new ModelAndView ("competency/email_sent");
  179. }
  180. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement