Spring整合freemarker发送邮件mail, 附件

[url]http://blog.csdn.net/zdp072/article/details/32745335[/url]


发送实现类, 详细看原文
public class EmailServiceImpl implements EmailService {  

private JavaMailSender mailSender;
private FreeMarkerConfigurer freeMarkerConfigurer;
private static final String ENCODING = "utf-8";

public void setMailSender(JavaMailSender mailSender) {
this.mailSender = mailSender;
}

public void setFreeMarkerConfigurer(FreeMarkerConfigurer freeMarkerConfigurer) {
this.freeMarkerConfigurer = freeMarkerConfigurer;
}


/**
* 发送带附件的html格式邮件
*/
public void sendEmail(User user) {
MimeMessage msg = null;
try {
msg = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(msg, true, ENCODING);
helper.setFrom("service@estore.com");
helper.setTo("zhangsan@estore.com");
helper.setSubject(MimeUtility.encodeText("estore注册成功提示邮件", ENCODING, "B"));
helper.setText(getMailText(user), true); // true表示text的内容为html

// 添加内嵌文件,第1个参数为cid标识这个文件,第2个参数为资源
helper.addInline("welcomePic", new File("d:/welcome.gif")); // 附件内容

// 这里的方法调用和插入图片是不同的,解决附件名称的中文问题
File file = new File("d:/欢迎注册.docx");
helper.addAttachment(MimeUtility.encodeWord(file.getName()), file);
} catch (Exception e) {
throw new RuntimeException("error happens", e);
}
mailSender.send(msg);
System.out.println("邮件发送成功...");
}

/**
* 通过模板构造邮件内容,参数content将替换模板文件中的${content}标签。
*/
private String getMailText(User user) throws Exception {
// 通过指定模板名获取FreeMarker模板实例
Template template = freeMarkerConfigurer.getConfiguration().getTemplate("registe.html");

// FreeMarker通过Map传递动态数据
Map<String, String> map = new HashMap<String, String>();
map.put("username", user.getUsername()); // 注意动态数据的key和模板标签中指定的属性相匹配
map.put("password", user.getPassword());

// 解析模板并替换动态数据,最终content将替换模板文件中的${content}标签。
String htmlText = FreeMarkerTemplateUtils.processTemplateIntoString(template, map);
return htmlText;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值