【SpringBoot】发送html和基于模板的邮件

一、发送html邮件服务

/**
 * 发送html邮件
 */
public void sendHtmlMail(String to, String subject, String content) throws MessagingException {
    //注意这里使用的是MimeMessage
    MimeMessage message = mailSender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message, true);
    helper.setFrom(fromEmail);
    helper.setTo(to);
    helper.setSubject(subject);
    //第二个参数是否是html,true
    helper.setText(content, true);

    mailSender.send(message);
}

测试用例

@Test
public void sendHtmlMail() throws MessagingException {
    mailService.sendHtmlMail("283533177@qq.com","一封html测试邮件","<body style=\"text-align: center;margin-left: auto;margin-right: auto;\">\n"
            + " <div id=\"welcome\" style=\"text-align: center;position: absolute;\" >\n"
            +"      <h3>\"一封html测试邮件\"</h3>\n"
            +"      <span>http://www.zimug.com</span>"
            + "     <div style=\"text-align: center; padding: 10px\"><a style=\"text-decoration: none;\" href=\"https://github.com/krislinzhao\" target=\"_bank\" >"
            + "           <strong>我很用心,希望你有所收获</strong></a></div>\n"
            + " </div>\n" + "</body>");
}

二、基于freemarker模板的邮件

基于freemarker模板邮件本质上,还是发送html邮件,只不过是有一个把模板转换成html字符串的过程。thymeleaf也可以实现,不妨试一试。

@Autowired
private FreeMarkerConfigurer freeMarkerConfigurer;

@Test
public void sendTemplateMail() throws IOException, TemplateException, MessagingException {
    List<ArticleVO> articles = new ArrayList<>();
    articles.add(new ArticleVO(1L,"zimug","手摸手教你学spring boot","内容一",new Date(),null));
    articles.add(new ArticleVO(2L,"zimug","手摸手教你学spring boot","内容二",new Date(),null));
    Template template = freeMarkerConfigurer.getConfiguration().getTemplate("fremarkertemp.html");

    Map<String,Object> model = new HashMap<>();
    model.put("articles",articles);
    String templateHtml = FreeMarkerTemplateUtils.processTemplateIntoString(template,model);


    mailService.sendHtmlMail("283533177@qq.com","一封freemarker模板的html测试邮件",templateHtml);
}

模板文件

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8" />
    <title>freemarker简单示例</title>
</head>
<body>
<h1>Hello Freemarker</h1>

<table class="">
    <tr>
        <td>firstName</td>
        <td>lastName</td>
    </tr>

    <#list people as person>
        <tr>
            <td>${person.firstname}</td>
            <td>${person.lastname}</td>
        </tr>
    </#list>

</table>
</body>
</html>
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

攻城狮·建哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值