springkboot发送邮件分为4步
自己邮箱的设置
先去把自己发送邮箱smtp服务开启,因为我用的是qq邮箱,qq邮箱需要使用授权码进行发送,在设置->账号 里面就可以找到
导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
配置
## mail
spring.mail.username=qq号@qq.com
spring.mail.password=授权码
spring.mail.host=smtp.qq.com
发送邮件
package com.laxi.util;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import javax.mail.internet.MimeMessage;
@Component
public class MailClient {
@Autowired
JavaMailSender javaMailSender;
@Value("${spring.mail.username}")
String from;
//发送普通邮件
public void sendMail(String to, String subject, String text) {
SimpleMailMessage mailMessage = new SimpleMailMessage();
//from 发送者 to 接收者 subject主题 text 内容
mailMessage.setFrom(from);
mailMessage.setTo(to);
mailMessage.setSubject(subject);
mailMessage.setText(text);
javaMailSender.send(mailMessage);
}
// 发送邮件代html格式
public void sendMailHtml(String to, String subject, String text) {
try {
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper mailMessage = new MimeMessageHelper(message, true);
mailMessage.setFrom(from);
mailMessage.setTo(to);
mailMessage.setSubject(subject);
mailMessage.setText(text, true);
javaMailSender.send(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}
测试
@Autowired
MailClient mailClient;
@Test
void contextLoads() {
mailClient.sendMail("949864130@qq.com","测试邮件","这是一封<h1>王熙来</h1>的测试邮件");
}