选择邮箱 开启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);
}
}