1.发送邮件之前的筹备

申请一个邮箱账号 ,我这里应用的是网易邮箱
批改网易邮箱的设置 进去之后默认是敞开的须要开启他 POP3/SMTP服务 开启的时候有一个受权码,记录好他,上面要用到

有的邮箱设置可能须要保留,记得保留批改

2. 代码的编写

在pom.xml中引入依赖
<dependency>      <groupId>org.springframework.boot</groupId>       <artifactId>spring-boot-starter-mail</artifactId>       <version>2.3.1.RELEASE</version></dependency>
编写application.yml文件
spring:     mail:        host: smtp.163.com                         # 你应用的邮箱的域名        port: 465                                  # 邮箱的端口个别都是465 不晓得能够查一下        username: XXXX@163.com              # 你的邮箱账号        password: XXXXX                     # 下面开启的时候保留的受权码          protocol: smtp                             # 发送邮件的协定        properties.mail.smtp.ssl.enable: true      #开启SSL平安连贯
发送邮件的客户端类
@Component  //这个类会别spring托管,在这个我的项目中所有中央都能够应用,只须要注入一下即可public class MailClient {    private static final Logger logger = LoggerFactory.getLogger(MailClient.class);    /**     * 发送邮件的外围组件     */    @Autowired    private JavaMailSender mailSender;    /**     * 邮件发件人     */    @Value("${spring.mail.username}") //这里是从application.yml中获得值springboot 中能够应用@Value 来获取到yml文件中的值 spring.mail.username 就是他的key    private String from;    /** 发送邮件的办法     * @param to  发送给谁     * @param subject  邮件主题     * @param content  邮件内容     */    public void sendMail(String to,String subject,String content){        try {            //创立一个发送邮件的类            MimeMessage message = mailSender.createMimeMessage();            //应用发送邮件的帮忙类            MimeMessageHelper helper = new MimeMessageHelper(message);            //发送人            helper.setFrom(from);            //接管人            helper.setTo(to);            //发送的主题            helper.setSubject(subject);            //以html的模式的邮件内容            helper.setText(content,true);            //发送邮件            mailSender.send(helper.getMimeMessage());        } catch (MessagingException e) {            logger.error("发送邮件失败"+e.getMessage());        }    }}

好了当初发送邮件的性能曾经写完了,当初测试一下吧

3. 测试邮件发送性能

新建一个测试类
@Autowired    private MailClient mailClient; //将方才写好的邮件发送的客户端注入进来@Test  //测试发送一个一般文本的邮件    public void sendMailText(){        mailClient.sendMail("你要发送邮件的邮箱","测试","我在测试啊");    }


是不是很神奇,收到了邮件了,那么接下来咱们来试试发送一个html的邮件看看

在templates新建一个mail 文件夹,建一个名为demo.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>
回到咱们的测试类
import org.thymeleaf.TemplateEngine;import org.thymeleaf.context.Context;@Autowired    private MailClient mailClient;    //模板引擎 这是springboot 曾经将thymeleaf封装成了一个对象,能够间接应用他```    @Autowired      private TemplateEngine templateEngine;       @Test    public void sendHTMLMail(){        Context context = new Context();  //在这里咱们是将html要获取的username传进去        context.setVariable("username","小王");        String content = templateEngine.process("/mail/demo", context);//指定他的html门路,并且将咱们设置的一个信息给他        System.out.println(content); //在控制台打印一下看看        mailClient.sendMail("你要发送的邮箱","HTML发送",content); //执行发送邮件的办法    }

在这里肯定要留神不要导错包了,咱们用的是thymeleaf的,所以要到thymeleaf的包
在检查一下有没有收到邮件

收到邮件了
好了,当初spring boot 发送邮件性能曾经实现了,快去发邮件把!