在Sprint boot上集成一个简单的发送邮件的功能
在pom.xml
加入以下配置
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
</dependencies>
在 application.yml
文件
spring:
#邮箱
mail:
protocol: smtps
# 配置 SMTP 服务器地址
# 我这里是阿里邮箱
host: smtp.qiye.aliyun.com
# 发送者邮箱
username: tangyong@tangyongyong.cn
# 配置密码
#这里是授权码,阿里邮箱直接用密码即可
password:
# 端口号465或587
#port: 465
# 默认的邮件编码为UTF-8
default-encoding: UTF-8
# 配置SSL 加密工厂
properties:
mail:
smtp:
auth: true
starttls:
enable: true
socketFactory:
port: 465
port: 465
socketFactoryClass: javax.net.ssl.SSLSocketFactory
#表示开启 DEBUG 模式,这样,邮件发送过程的日志会在控制台打印出来,方便排查错误
debug: true
定义服务类
@Service
public class SendEmail {
//定义邮件发送器
@Autowired
private JavaMailSender mailSender;
//定义邮件发送者
//private String from;
/**
* @param to 接收者
* @param subject 主题
* @param content 内容
*/
@Test
public void send(String to, String subject, String content) {
//创建一个简单文本邮件的对象
SimpleMailMessage message = new SimpleMailMessage();
//赋予相应的内容
message.setTo(to);
message.setSubject(subject);
message.setText(content);
// 需要与配置文件发件人的值相同
message.setFrom(from);
message.setSentDate(new Date());
//将邮件对象赋予邮件发送器
mailSender.send(message);
}
}