springboot email freemarker

pom.xml
springboot 2.5.0

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>

application.yml

spring:
  mail:
  	# default smtp
    protocol: smtps
    host: smtp.163.com
    port: 465
    username: AutomaticAlert@163.com
    # 授权码
    password: password
    default-encoding: UTF-8
    properties:
      mail:
        #配置SSL 加密工厂
#        smtp:
#          ssl:
            #本地测试,先放开ssl
#            enable: true
#            required: false
        # 表示开启 DEBUG 模式,这样,邮件发送过程的日志会在控制台打印出来,方便排查错误
        debug: true
        
# freemarker config        
  freemarker:
    # default path: classpath:/templates/
    template-loader-path: classpath:/templates/
        

测试类

@RestController
@Slf4j
public class EmailController {

    @Autowired
    JavaMailSender javaMailSender;

    @Autowired
    private Configuration configuration;

    @Value("${spring.mail.username}")
    private String sendFrom;

    @GetMapping("/email")
    public void email(){
        try {
            MimeMessage mimeMessage = javaMailSender.createMimeMessage();
            MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, StandardCharsets.UTF_8.name());
            mimeMessageHelper.setFrom(sendFrom);
            mimeMessageHelper.setTo("kaili0230@qq.com");
            mimeMessageHelper.setSubject("email");
            mimeMessageHelper.setSentDate(new Date());

            //增加模板,填充信息,发送邮件
            Map<String, String> params =new HashMap<String, String>();
            params.put("name", "kl");
            params.put("url", "http://www.baidu.com");
            Template template = configuration.getTemplate("email-demo.htm", StandardCharsets.UTF_8.name());
            String mailText = FreeMarkerTemplateUtils.processTemplateIntoString(template, params);
            mimeMessageHelper.setText(mailText, true); // 注明html
            javaMailSender.send(mimeMessage);

        } catch (Exception e) {
            log.error("test2 email error.", e);
        }
    }
}

目录结构
在这里插入图片描述

email-demo.htm

<!DOCTYPE html>
<html lang="en">

<head>
    <meta http-equiv=Content-Type content="text/html; charset=UTF-8">
</head>

<body lang=ZH-CN link="#0563C1" vlink="#954F72" style='tab-interval:21.0pt;
text-justify-trim:punctuation'>

<div class=WordSection1>

    <p class=MsoNormal><a name="_MailOriginal"><span lang=EN-US>Hi ${name},<o:p></o:p></span></a></p>

    <p class=MsoNormal><span style='mso-bookmark:_MailOriginal'><span lang=EN-US>&nbsp;&nbsp;</span>恭喜你,可以点击下链接打开百度。<span
            lang=EN-US><o:p></o:p></span></span></p>

    <p class=MsoNormal><span style='mso-bookmark:_MailOriginal'><span lang=EN-US>&nbsp;&nbsp;</span></span><span
            style='mso-bookmark:_MailOriginal'></span><a
            href="${url}"><span
            style='mso-bookmark:_MailOriginal'><span lang=EN-US style='font-family:-apple-system;
border:none windowtext 1.0pt;mso-border-alt:none windowtext 0cm;padding:0cm;
background:white'>${url}</span></span><span
            style='mso-bookmark:_MailOriginal'></span></a><span style='mso-bookmark:_MailOriginal'><span
            lang=EN-US><o:p></o:p></span></span></p>

    <p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

</div>

</body>

</html>

将Outlook中编辑好的邮件通过 文件 -> 另存为 -> 选择htm,html 类型.打开文件替换里面的变量 ${value}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值