选择邮箱 开启SMTP服务

导入Spring Email Jar包 链接:Spring Boot Starter Mail

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-mail -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
            <version>3.0.2</version>
        </dependency>

在项目中完成邮箱配置

# MailProperties
spring.mail.host=smtp.163.com
spring.mail.port=465
spring.mail.username=xxxxxxxx@163.com
spring.mail.password=xxxxxxxxx
spring.mail.protocol=smtps
spring.mail.properties.mail.smtp.ssl.enable=true

Mail工具类

package com.community.community.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

//邮箱工具类
@Component
public class MailClient {

    private static final Logger logger = LoggerFactory.getLogger(MailClient.class);

    @Autowired
    private JavaMailSender mailSender;

    @Value("${spring.mail.username}")
    private String from;

    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);
            //内容 true表示可识别html格式
            helper.setText(content,true);
            mailSender.send(helper.getMimeMessage());
        } catch (MessagingException e) {
            logger.error("邮件发送失败:"+e.getMessage());
        }
    }
}

使用测试

@SpringBootTest
public class MailTests {

    @Autowired
    private MailClient mailClient;

    @Autowired
    private TemplateEngine templateEngine;

    //普通文本
    @Test
    public void MailSendTest(){
        //发送邮箱 标题 内容
        mailClient.sendMail("1937026980@qq.com","test","hello success!");
    }

    //html文本
    @Test
    public void HtmlMailTest(){
        Context context = new Context();
        context.setVariable("username","sunday");
        String content = templateEngine.process("/mail/activation", context);
        mailClient.sendMail("1937026980@qq.com","Test",content);
    }
}