packageorg.seckill.util.mail;importjava.io.BufferedReader;importjava.io.IOException;importjava.util.Map;importjava.util.Properties;importjavax.mail.internet.MimeMessage;importorg.apache.velocity.app.VelocityEngine;importorg.springframework.mail.javamail.JavaMailSender;importorg.springframework.mail.javamail.JavaMailSenderImpl;importorg.springframework.mail.javamail.MimeMessageHelper;importorg.springframework.ui.Model;importorg.springframework.ui.velocity.VelocityEngineFactory;importorg.springframework.ui.velocity.VelocityEngineUtils;/*** 邮件服务类
* @date 2016年10月19日
**/
public classMailHelper {/**发送类*/
privateJavaMailSender mailSender;/**Velocity引擎*/
privateVelocityEngine velocityEngine;private String charset = "UTF-8";/**标题*/
privateString mailTitle;/**发件人*/
privateString mailFrom;publicMailHelper() { }publicMailHelper(String mailTitle, String mailFrom) {this.mailTitle =mailTitle;this.mailFrom =mailFrom;
}publicMailHelper(JavaMailSender mailSender, VelocityEngine velocityEngine) {this.mailSender =mailSender;this.velocityEngine =velocityEngine;
}public booleansendMail( String[] to, String subject, String tplName, Model model ) {returnsendMail(to, subject, tplName, model.asMap());
}public boolean sendMail( String to, String subject, String tplName, Mapdata ) {return sendMail(newString[ ] { to }, subject, tplName, data);
}public boolean sendMail( String[] to, String subject, String tplName, Mapdata ) {return sendMail(this.mailTitle, this.mailFrom, to, subject, tplName, data);
}/*** 发给一个收件人
*@parampersonal
*@paramfrom
*@paramto
*@paramsubject
*@paramtplName
*@parammodel
*@return
*/
public booleansendMail( String personal, String from, String to, String subject, String tplName, Model model ) {return sendMail(personal, from, newString[ ] { to }, subject, tplName, model.asMap());
}/*** 发送邮件
*@parampersonal 邮件发送者名称
*@paramfrom 邮件发送者地址
*@paramto 收件人地址
*@paramsubject 主题
*@paramtplName 模板,如/WEB-INF/views/mail/xxx.vm
*@parammodel 数据model
*@return是否成功*/
public booleansendMail( String personal, String from, String[] to, String subject, String tplName, Model model ) {returnsendMail(personal, from, to, subject, tplName, model.asMap());
}/*** 发送邮件
*@parampersonal 邮件发送者名称
*@paramfrom 邮件发送者地址
*@paramto 收件人地址
*@paramsubject 主题
*@paramtplName 模板,如/WEB-INF/views/mail/xxx.vm
*@paramdata 数据
*@return是否成功*/
public boolean sendMail(String personal,String from,String[] to,String subject,String tplName,Mapdata){try{
MimeMessage msg=mailSender.createMimeMessage();
MimeMessageHelper msgHelper= newMimeMessageHelper(msg, getCharset());
msgHelper.setFrom(from, personal);
msgHelper.setTo(to);
msgHelper.setSubject(subject);
msgHelper.setText(getHtmlText(tplName,data),true);
mailSender.send(msg);return true;
}catch(Exception e) {
e.printStackTrace();
}return false;
}/*** velocity 模板转 html
*@paramtplName 模板
*@paramdata 数据
*@return
*/
public String getHtmlText(String tplName,Mapdata){return VelocityEngineUtils.mergeTemplateIntoString(this.velocityEngine, tplName,getCharset(),data);
}publicJavaMailSender getMailSender() {returnmailSender;
}public voidsetMailSender(JavaMailSender mailSender) {this.mailSender =mailSender;
}publicVelocityEngine getVelocityEngine() {returnvelocityEngine;
}public voidsetVelocityEngine(VelocityEngine velocityEngine) {this.velocityEngine =velocityEngine;
}publicString getMailTitle() {returnmailTitle;
}public voidsetMailTitle(String mailTitle) {this.mailTitle =mailTitle;
}publicString getMailFrom() {returnmailFrom;
}public voidsetMailFrom(String mailFrom) {this.mailFrom =mailFrom;
}
publicString getCharset() {returncharset;
}
public voidsetCharset(String charset) {this.charset =charset;
}
}