1 package org.javabb.infra; 2 3 import java.util.Properties ; 4 5 import javax.mail.MessagingException ; 6 import javax.mail.internet.MimeMessage ; 7 8 import org.apache.commons.logging.Log; 9 import org.apache.commons.logging.LogFactory; 10 import org.springframework.mail.MailException; 11 import org.springframework.mail.javamail.JavaMailSenderImpl; 12 import org.springframework.mail.javamail.MimeMessageHelper; 13 14 29 30 36 public class ThreadMail extends Thread { 37 38 private static final Log log = LogFactory.getLog(ThreadMail.class); 39 40 private MimeMessage message; 42 43 private JavaMailSenderImpl sender; 44 45 private String mailFrom; 47 48 private String mailTo; 49 50 private String subject; 51 52 private String bodyMessage; 53 54 private boolean htmlMail; 55 56 68 public ThreadMail(String mailFrom, String mailTo, String subject, 69 String bodyMessage, boolean htmlMail) { 70 71 this.mailFrom = mailFrom; 72 this.mailTo = mailTo; 73 this.subject = subject; 74 this.bodyMessage = bodyMessage; 75 this.htmlMail = htmlMail; 76 } 77 78 81 public void sendMail() throws MailException, MessagingException { 82 83 Configuration conf = new Configuration(); 85 86 sender = new JavaMailSenderImpl(); 88 sender.setHost(conf.smtpServerHost); 89 90 if (conf.smtpServerUserName != null 91 && !"".equals(conf.smtpServerUserName)) { 92 93 Properties mailProps = new Properties (); 94 mailProps.put("mail.smtp.auth", "true"); 95 mailProps.put("mail.smtp.port", "25"); 96 sender.setJavaMailProperties(mailProps); 97 98 sender.setUsername(conf.smtpServerUserName); 99 sender.setUsername(conf.smtpServerUserName); 100 sender.setPassword(conf.smtpServerUserPassword); 101 } 102 103 message = sender.createMimeMessage(); 104 String reportMails = mailTo.replaceAll(",", ";"); 105 String [] dests = reportMails.split(";"); 106 107 for (int i = 0; i < dests.length; i++) { 108 MimeMessageHelper helper = new MimeMessageHelper(message, true); 110 helper.setFrom(mailFrom); 112 helper.setSubject(subject); 113 114 String destSendMail = dests[i].trim(); 115 116 helper.setTo(destSendMail); 117 118 helper.setText(bodyMessage, htmlMail); 120 121 126 127 log.info("Sending mail to " + destSendMail); 128 sender.send(message); 129 log.info("Mail was sent!"); 130 } 131 } 132 133 136 public void run() { 137 try { 138 sleep(2000); 139 sendMail(); 140 } catch (MailException e) { 141 log.error(e); 142 } catch (MessagingException e) { 143 log.error(e); 144 } catch (InterruptedException e) { 145 log.error(e); 146 } 147 } 148 149 } | Popular Tags |