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

效果展示

在这里插入图片描述

一、准备工作

  • 需要开启POP3、SMTP邮件服务
  • 需要设置客户端授权码
  • 以网易邮箱举例如下:
    在这里插入图片描述
    在这里插入图片描述

二、发送模板邮件

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
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">

    <head>
        <meta charset="UTF-8">
        <title>激活邮件</title>
        <style type="text/css">
            * {
                margin: 0;
                padding: 0;
                box-sizing: border-box;
                font-family: Arial, Helvetica, sans-serif;
            }

            body {
                background-color: #ECECEC;
            }

            .container {
                width: 800px;
                margin: 50px auto;
            }

            .header {
                height: 80px;
                background-color: #49bcff;
                border-top-left-radius: 5px;
                border-top-right-radius: 5px;
                padding-left: 30px;
            }

            .header h2 {
                padding-top: 25px;
                color: white;
            }

            .content {
                background-color: #fff;
                padding-left: 30px;
                padding-bottom: 30px;
                border-bottom: 1px solid #ccc;
            }

            .content h2 {
                padding-top: 20px;
                padding-bottom: 20px;
            }

            .content p {
                padding-top: 10px;
            }

            .footer {
                background-color: #fff;
                border-bottom-left-radius: 5px;
                border-bottom-right-radius: 5px;
                padding: 35px;
            }

            .footer p {
                color: #747474;
                padding-top: 10px;
            }
        </style>
    </head>

    <body>
        <div class="container">
            <div class="header">
                <h2>欢迎加入SecondGoodTrade! (二手商品交易平台)</h2>
            </div>
            <div class="content">
                <h2>亲爱的用户您好</h2>
                <p>您的邮箱:<b><span th:text="${email}"></span></b></p>
                <p>您的激活码:<b><span th:text="${code}"></span></b></p>
                <p>您注册时的日期:<b><span th:text="${createTime}"></span></b></p>
                <p>当您在使用本网站时,务必要遵守法律法规</p>
                <p>如果您有什么疑问可以联系管理员,Email: <b>wgt161110527@163.com</b></p>
            </div>
            <div class="footer">
                <p>此为系统邮件,请勿回复</p>
                <p>请保管好您的信息,避免被他人盗用</p>
                <p>©shw</p>
            </div>
        </div>
    </body>

</html>

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 = "wgt161110527@163.com";

@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;
    }
}
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值