<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>2.1.5.RELEASE</version>
</dependency>
在pom.xml导入上面的依赖
- 有小伙伴说:为什么我的代码跟老师一样,但是出现了报错呢?
报错信息是不是530呢 ,细心的小伙伴可能注意到新浪设置那里跟老师不一样,多了一个授权码
这是因为新浪邮箱目前做了改进,改进了发送邮件客户端的验证方式,现在需要通过授权码才能发送邮件了,在application.properties中添加自己的授权码就可以了
spring.mail.password=这里写自己的授权码哦
用QQ邮箱做测试成功了
2. 发送HTML邮件
依旧使用thymeleaf,很简单啊。就把username换做动态数据即可
<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>邮件示例</title>
</head>
<body>
<p>欢迎你,<span style="color:red;"th:text="${username}"></span>!!!!!</p>
</body>
</html>
在SpringMVC的模式下,用Controller将Model和View传递给模版,但在测试中不一样
Spring中有一个现成的模版引擎Bean供我们使用,使用前先注入到templateEngine对象中。
传参:还记得之前我们在Controller中是如何给template传参的吗?首先定义一个model形参,然后利用model.addAttribute(“名”,“值”),名字要跟前端中一致。但在测试中是如何发送邮件的呢?用Context new一个context对象,然后用setVariable(“名”,“值”)把数据放在context里面。接下来就用到上面注入的Bean了,要加载我们的前端路径和数据从而生成网页。返回一个content对象(注意区分content和context) 封装完成后就可以发送邮件了
String content = templateEngine.process("/mail/demo", context);