packagecom.chenlb.mail;importjava.util.Map;importjavax.mail.MessagingException;importjavax.mail.internet.MimeMessage;importorg.apache.commons.logging.Log;importorg.apache.commons.logging.LogFactory;importorg.apache.velocity.app.VelocityEngine;importorg.springframework.mail.MailException;importorg.springframework.mail.javamail.JavaMailSender;importorg.springframework.mail.javamail.MimeMessageHelper;importorg.springframework.ui.velocity.VelocityEngineUtils;/*** 邮件发送器
* @作者 chenlb
* @创建时间 2007-7-28 下午03:35:31*/publicclassVelocityTemplateMailMessage {protectedfinalLog logger=LogFactory.getLog(getClass());privateJavaMailSender javaMailSender;privateVelocityEngine velocityEngine;privateString from;privateString title;privateString encoding;privateString templateLocation;privateString[] toEmails;privateMap model;publicbooleansend() {
MimeMessage msg=javaMailSender.createMimeMessage();
MimeMessageHelper helper=newMimeMessageHelper(msg);try{
helper.setFrom(from);
helper.setSubject(title);
helper.setTo(toEmails);
helper.setText(getMessage(),true); //如果发的不是html内容去掉true参数
javaMailSender.send(msg);
}catch(MessagingException e) {//TODO 自动生成 catch 块if(logger.isWarnEnabled()) {
logger.warn("邮件信息导常! 邮件标题为:"+title);
}returnfalse;//e.printStackTrace();}catch(MailException me) {//TODO: handle exceptionif(logger.isWarnEnabled()) {
logger.warn("发送邮件失败! 邮件标题为:"+title);
}returnfalse;
}returntrue;
}/*** 邮件模板中得到信息
*@return返回特发送的内容*/privateString getMessage() {returnVelocityEngineUtils.mergeTemplateIntoString(velocityEngine,
templateLocation, encoding, model);
}privateString[] createToEmail(String to) {returnnewString[] {to};
}publicvoidsetToEmail(String to) {
setToEmails(createToEmail(to));
}publicvoidsetJavaMailSender(JavaMailSender javaMailSender) {this.javaMailSender=javaMailSender;
}publicvoidsetVelocityEngine(VelocityEngine velocityEngine) {this.velocityEngine=velocityEngine;
}publicvoidsetEncoding(String encoding) {this.encoding=encoding;
}publicvoidsetModel(Map model) {this.model=model;
}publicvoidsetTemplateLocation(String templateLocation) {this.templateLocation=templateLocation;
}publicvoidsetTitle(String title) {this.title=title;
}publicvoidsetToEmails(String[] toEmails) {this.toEmails=toEmails;
}publicvoidsetFrom(String from) {this.from=from;
}publicString getTemplateLocation() {returntemplateLocation;
}
}