Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package id.bixsoft.hcms.config;
- import java.util.EnumSet;
- import javax.servlet.DispatcherType;
- import javax.servlet.FilterRegistration;
- import javax.servlet.ServletContext;
- import javax.servlet.ServletException;
- import javax.servlet.ServletRegistration;
- import org.springframework.orm.hibernate5.support.OpenSessionInViewFilter;
- import org.springframework.web.WebApplicationInitializer;
- import org.springframework.web.context.ContextLoaderListener;
- import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
- import org.springframework.web.servlet.DispatcherServlet;
- /**
- * @author ETS Roby
- * Issue : Create Email Sending
- * Created on : April 13, 2016
- */
- public class ApplicationInitializer implements WebApplicationInitializer {
- @Override
- public void onStartup(ServletContext sc) throws ServletException {
- AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
- rootContext.register(MvcApplication.class, EmailConfig.class);
- rootContext.setServletContext(sc);
- rootContext.refresh();
- DispatcherServlet mvcServlet = new DispatcherServlet(rootContext);
- ServletRegistration.Dynamic appServlet = sc.addServlet("appServlet", mvcServlet);
- appServlet.setLoadOnStartup(1);
- appServlet.addMapping("/");
- OpenSessionInViewFilter coreSessionFilter = new OpenSessionInViewFilter();
- OpenSessionInViewFilter portalSessionFilter = new OpenSessionInViewFilter();
- coreSessionFilter.setSessionFactoryBeanName("coreSessionFactory");
- portalSessionFilter.setSessionFactoryBeanName("portalSessionFactory");
- EnumSet<DispatcherType> dispatcherTypes = EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD);
- FilterRegistration.Dynamic coreSessionInView = sc.addFilter("coreSessionInView", coreSessionFilter);
- coreSessionInView.addMappingForUrlPatterns(dispatcherTypes, true, "/");
- FilterRegistration.Dynamic portalSessionInView = sc.addFilter("portalSessionInView", portalSessionFilter);
- portalSessionInView.addMappingForUrlPatterns(dispatcherTypes, true, "/");
- sc.addListener(new ContextLoaderListener(rootContext));
- sc.setInitParameter("defaultHtmlEscape", "true");
- }
- }
- package id.bixsoft.hcms.config;
- import java.util.Properties;
- import org.springframework.beans.factory.annotation.Configurable;
- import org.springframework.mail.javamail.JavaMailSender;
- import org.springframework.mail.javamail.JavaMailSenderImpl;
- import org.springframework.context.annotation.Bean;
- /**
- * @author ETS Roby
- * Issue : Create Email Sending
- * Created on : April 13, 2016
- */
- @Configurable
- public class EmailConfig {
- @Bean
- public JavaMailSender javaMailSender(){
- Properties javaMailProperties = new Properties();
- javaMailProperties.put("mail.transport.protocol", "smtp");
- javaMailProperties.put("mail.smtp.auth", true);
- javaMailProperties.put("mail.smtp.ssl.enable", true);
- javaMailProperties.put("mail.debug", true);
- javaMailProperties.put("mail.smtp.fromemail","no-reply@bixsoft.id");
- JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
- mailSender.setProtocol("smtp");
- mailSender.setHost("192.168.45.88");
- mailSender.setPort(25);
- mailSender.setUsername("username");
- mailSender.setPassword("password");
- mailSender.setJavaMailProperties(javaMailProperties);
- return mailSender;
- }
- }
- package id.bixsoft.hcms.controllers.competency;
- import id.bixsoft.hcms.forms.KaryawanForm;
- import java.util.Properties;
- import javax.mail.Message;
- import javax.mail.PasswordAuthentication;
- import javax.mail.Session;
- import javax.mail.Transport;
- import javax.mail.internet.InternetAddress;
- import javax.mail.internet.MimeMessage;
- import javax.servlet.ServletContext;
- import javax.servlet.http.HttpSession;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.mail.javamail.JavaMailSender;
- import org.springframework.mail.javamail.JavaMailSenderImpl;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.ModelMap;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.ModelAttribute;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.servlet.ModelAndView;
- import id.bixsoft.hcms.forms.competency.EmailForm;
- import id.bixsoft.hcms.util.GlobalParameter;
- /**
- * @author ETS Roby
- * Issue : Create Email Sending
- * Created on : April 13, 2016
- */
- @Controller
- @RequestMapping(value = "/competency")
- public class EmailController {
- @Autowired
- ServletContext context;
- @Autowired
- JavaMailSender javaMailSender;
- @RequestMapping(value = "/create_email", method = RequestMethod.GET)
- public ModelAndView showEmailForm(HttpSession session, Model model) {
- model.addAttribute("karyawan", new KaryawanForm());
- model.addAttribute("email", new EmailForm());
- if(session.getAttribute(GlobalParameter.SESSION) != null){
- return new ModelAndView("competency/create_email");
- }
- return new ModelAndView ("competency/success_email");
- }
- @RequestMapping(value = "/send_email", method = RequestMethod.POST)
- public ModelAndView sendEmail(ModelMap model, @ModelAttribute("email") EmailForm emailForm) {
- try {
- final JavaMailSenderImpl mailSender = (JavaMailSenderImpl) javaMailSender;
- //get email server information from config xml file
- Properties props = mailSender.getJavaMailProperties();
- final String username = mailSender.getUsername();
- final String password = mailSender.getPassword();
- //get from email is username
- String fromEmail = mailSender.getJavaMailProperties().get("mail.smtp.fromemail").toString();
- emailForm.setFrom(fromEmail);
- //need authenticate to server
- Session session = Session.getInstance(props,
- new javax.mail.Authenticator() {
- @Override
- protected PasswordAuthentication getPasswordAuthentication() {
- return new PasswordAuthentication(username, password);
- }
- });
- //create session authenticated to send email
- MimeMessage message = new MimeMessage(session);
- message.setFrom(new InternetAddress(emailForm.getFrom()));
- message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(emailForm.getTo()));
- message.setSubject(emailForm.getSubject(),"UTF-8");
- message.setText(emailForm.getBody());
- //call send email function
- Transport.send(message);
- //mailSender.send(message);
- } catch (Exception ex) {
- model.addAttribute("error", ex.getMessage());
- return new ModelAndView ("competency/create_email");
- }
- return new ModelAndView ("competency/email_sent");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement