SpringBoot发送注册激活邮件(附HTML模板)

效果展示

SpringBoot发送注册激活邮件(附HTML模板)_第1张图片

一、准备工作

  • 需要开启POP3、SMTP邮件服务
  • 需要设置客户端授权码
  • 以网易邮箱举例如下:
    SpringBoot发送注册激活邮件(附HTML模板)_第2张图片
    SpringBoot发送注册激活邮件(附HTML模板)_第3张图片

二、发送模板邮件

1、添加依赖

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

2、绑定配置

  • application.properties
#邮件配置
#邮箱服务器地址
spring.mail.host=smtp.163.com
#用户名
spring.mail.username=XXX@163.com
#密码
spring.mail.password=XXX
#编码
spring.mail.default-encoding=UTF-8
#发件人
mail.fromMail.sender=XXX@163.com

3、编写HTML模板

  • src\main\resources\templates下,新建文件registerTemplate.html



    
        
        激活邮件
        
    

    
        

欢迎加入SecondGoodTrade! (二手商品交易平台)

亲爱的用户您好

您的邮箱:{email}">

您的激活码:{code}">

您注册时的日期:{createTime}">

当您在使用本网站时,务必要遵守法律法规

如果您有什么疑问可以联系管理员,Email: [email protected]

"footer">

此为系统邮件,请勿回复

请保管好您的信息,避免被他人盗用

©shw

4、书写工具类

@Component
public class MailUtil {
    @Value("${mail.fromMail.sender}")
    private String sender;
    @Autowired
    private JavaMailSender javaMailSender;
    @Autowired
    private TemplateEngine templateEngine;

    /**
     * @Author thailandking
     * @Date 2020/1/3 10:46
     * @LastEditors thailandking
     * @LastEditTime 2020/1/3 10:46
     * @Description 6、发送模板邮件
     */
    public void sendTemplateMail(String receiver, String subject, String emailTemplate, Map<String, Object> dataMap) throws Exception {
        Context context = new Context();
        for (Map.Entry<String, Object> entry : dataMap.entrySet()) {
            context.setVariable(entry.getKey(), entry.getValue());
        }
        String templateContent = templateEngine.process(emailTemplate, context);
        MimeMessage message = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        helper.setFrom(sender);
        helper.setTo(receiver);
        helper.setSubject(subject);
        helper.setText(templateContent, true);
        javaMailSender.send(message);
    }
}

5、调用方法

@Autowired
private MailUtil mailUtil;

private final String receiver = "[email protected]";

@Test
public void testTemplateMail() {
    //发送邮件
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
    String subject = "SecondGoodTrade用户注册";
    String emailTemplate = "registerTemplate";
    String code = UUIDUtil.getUUID(5);
    Map<String, Object> dataMap = new HashMap<>();
    dataMap.put("email", email);
    dataMap.put("code", code);
    dataMap.put("createTime", sdf.format(new Date()));
    try {
        mailUtil.sendTemplateMail(receiver, subject, emailTemplate, dataMap);
    } catch (Exception e) {
        return;
    }
}

你可能感兴趣的:(springboot)