SpringBoot框架实现邮件发送(下)

SpringBoot框架实现邮件发送(下)

接上文:SpringBoot框架实现邮件发送(上)_czxboys的博客-CSDN博客


1 邮件发送HTML模板

在templates目录下创建一个email.htm模板,可以参考如下,尽量别引用其它css,js样式。

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<table border="0" cellspacing="0" cellpadding="0" width="800" bgcolor="#0092ff" height="66">
    <tbody>
    <tr>
        <td width="50"></td>
        <td width="750"><img style="WIDTH: 135px"></td>
    </tr>
    </tbody>
</table>
<table style="FONT-FAMILY: 黑体; FONT-SIZE: 10pt" border="0" cellspacing="0" cellpadding="50" width="800">
    <tbody>
    <tr>
        <td width="800">
            <div>
                <div style="FONT-SIZE: 11pt">
                    亲爱的用户,您好!
                </div>
                <br>
                <div style="FONT-SIZE: 11pt">
                    您正在注册/登录xxx ID,本次注册/登录请求的验证码为:
                </div>
                <br>
                <br>
                <div>
                    <span style="COLOR: #0094ff; FONT-SIZE: 40pt" th:text="${code}">  code  </span>
                    <span style="COLOR: #ff0000; FONT-SIZE: 11pt">(为了保障您帐号的安全性,请在5分钟内完成验证。)</span>
                </div>
                <br>
                <br>
                <hr style="BORDER-BOTTOM: #808080 0px dashed; BORDER-LEFT: #808080 0px dashed; HEIGHT: 1px; BORDER-TOP: #808080 1px dashed; BORDER-RIGHT: #808080 0px dashed">
                <br>
                <div style="COLOR: #808080">
                    此邮件由系统自动发出,系统不接受回信,因此请勿直接回复。
                    <br> 安全使用您的“xxx ID”注意事项:
                    <br> 1、请不要在其他网站上使用相同的邮箱和密码进行注册。
                    <br> 2、请不要告知任何人您的“xxx ID”密码信息,包括xxx的工作人员。
                    <br>
                    <br> 如果您错误的收到本电子邮件,请您忽略上述内容。
                </div>
                <br>
                <hr style="BORDER-BOTTOM: #808080 0px dashed; BORDER-LEFT: #808080 0px dashed; HEIGHT: 1px; BORDER-TOP: #808080 1px dashed; BORDER-RIGHT: #808080 0px dashed">
                <div>
                    <br>
                </div>
                <div style="TEXT-ALIGN: right; FONT-SIZE: 11pt">
                    xxx
                </div>
                <div style="TEXT-ALIGN: right; FONT-SIZE: 11pt">
                    <span th:text="${#dates.format(#dates.createNow(),'yyyy/MM/dd HH:mm')}"></span>
                </div>
            </div>
        </td>
    </tr>
    </tbody>
</table>
<br/>
</body>
</html>

2 MailUtils工具类

在工具类新增发送html页面的模板

    /**
     * 邮件发送HTML 模板
     *
     * @param mailBean 接受邮件的信息
     */
    public void sendHtml(MailBean mailBean){
        MimeMessage mimeMessage;
        try {
            mimeMessage = mailSender.createMimeMessage();
            MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true);
            mimeMessageHelper.setFrom(MAIL_SENDER);
            mimeMessageHelper.setTo(mailBean.getToEmail());
            mimeMessageHelper.setSubject(mailBean.getSubject());
            // 加true,只发送HTML页面body里面的内容,不加则发送整个页面代码
            mimeMessageHelper.setText(mailBean.getCode(),true);
            // 邮件发送
            mailSender.send(mimeMessage);
        } catch (MessagingException e) {
            log.error("邮件发送失败:{}",e.getMessage());
            throw new CustomException("邮件发送失败");
        }
    }

3 测试sendText()方法

新建测试,测试纯文本发送是否能发送邮件。

package com.example.utils;

import com.example.pojo.MailBean;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class MailUtilsTest {

    @Autowired
    MailUtils mailUtils;
    @Test
    void sendText() {
        MailBean mailBean = new MailBean();
        mailBean.setCode("测试邮件");
        mailBean.setSubject("测试邮件");
        // 将Email改成自己的
        mailBean.setToEmail("xxx@qq.com");
        mailUtils.sendText(mailBean);
        System.out.println("====邮件发送成功====");
    }
}

测试结果:邮件发送成功


4 测试sendHtml()方法

新增测试方法

    @Autowired
    TemplateEngine templateEngine;

    @Test
    void sendHtml() {
        code = "Html 模板";
        // Context是org.thymeleaf.context包下的
        Context context = new Context();
        // html填充动态属性值
        context.setVariable("code",code);
        MailBean mailBean = new MailBean();
        String content = templateEngine.process("email",context);
        MailBean mailBean = new MailBean(email, "瑞吉外卖注册邮件", content);
        mailBean.setCode(code);
        mailBean.setSubject("测试邮件");
        // 将Email改成自己的
        mailBean.setToEmail("xxx@qq.com");
        mailUtils.sendHtml(mailBean);
        System.out.println("====邮件发送成功====");
    }

开始测试,发送邮件成功。


注意:

@Autowired 注解是用在测试类上的
@Resource 注解是用在非测试类上的
两者的功能基本相同

项目源码链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

czxboys

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

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

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

打赏作者

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

抵扣说明:

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

余额充值