javamail,quartz,freemarker实现定时邮件模板发送(2)

一:html模板

javamail,quartz,freemarker实现定时邮件模板发送(2)

二:填充模板

private void sendEmailToRecivers(Employee employee,Set<BasicInfo> basicInfos,Company company){
    String htmlText = "";
    Template tpl = freemarkerConfiguration.getConfiguration().getTemplate("toDoWorkList.ftl");
    Map<String, Object> dataMap = new HashMap<String, Object>();
    dataMap.put("name", employee.getName());
    ...当然你可以放很多
    //解析模板并替换动态数据
    htmlText = FreeMarkerTemplateUtils.processTemplateIntoString(tpl, dataMap);
    //发送模板邮件接口
    new MimeMailService().sendClockApplicantMail(basicInfos, htmlText, company,employee);

三:发送邮件:我在这里是根据公司的邮箱信息,也可以放在配置文件

/**
 * @author SGF
 * 2013年12月4日下午8:07:52
 * 构造邮件发送器(有的从公司,有的从配置文件)
 */
public JavaMailSender getMailSender(Company company) {
	mailSender = SpringBeanService.getBeans("mailSender");
	JavaMailSenderImpl j = (JavaMailSenderImpl)mailSender;
	if(company != null) {
		j.setHost(company.getMailServerAddr());
		j.setUsername(company.getMailUsername());
		j.setPassword(company.getMailPassword());
	}else {
		j.setHost(ConfigManager.get("smtp"));
		j.setUsername(ConfigManager.get("sendMailName"));
		j.setPassword(ConfigManager.get("sendMailPass"));
	}
	return mailSender;
}

/**
 * @author SGF
 * 2013年12月4日下午7:59:31
 * 根据信息发送邮件
 */
public void sendEmailByParams(JavaMailSender mailSender,String htmlText,String toAddress,
		String fromAddress,String title,String recipientMail) {
	try {
		MimeMessage msg = mailSender.createMimeMessage();
		if(recipientMail != null) {
		    msg.addRecipients(RecipientType.CC, recipientMail);//添加抄送人
		}
		MimeMessageHelper helper = new MimeMessageHelper(msg, true, DEFAULT_ENCODING);
		helper.setTo(toAddress);
		helper.setFrom(fromAddress,"兴元X/3");
		helper.setSubject(title);
		helper.setText(htmlText, true);
		mailSender.send(msg);
		logger.info("HTML版邮件已发送成功!");
	} catch (MessagingException e) {
		logger.error("构造邮件失败", e);
	} catch (Exception e) {
		logger.error("发送邮件失败", e);
	}
	
}


你可能感兴趣的:(freemarker,quartz,javamail)