以QQ为例
创建项目导入包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
配置邮件的基本信息
spring:
mail:
# 配置 SMTP 服务器地址
#126邮箱SMTP服务器地址:smtp.126.com,端口号:465或者994
#2163邮箱SMTP服务器地址:smtp.163.com,端口号:465或者994
#yeah邮箱SMTP服务器地址:smtp.yeah.net,端口号:465或者994
#qq邮箱SMTP服务器地址:smtp.qq.com,端口号465或587*
host: smtp.qq.com
# 发送者邮箱
username: 7********9@qq.com
# 配置密码,注意不是真正的密码,而是刚刚申请到的授权码
password: vjst32rgdaawb...
# 端口号465或587
port: 587
# 默认的邮件编码为UTF-8
default-encoding: UTF-8
# 配置SSL 加密工厂
properties:
mail:
smtp:
socketFactoryClass: javax.net.ssl.SSLSocketFactory
#表示开启 DEBUG 模式,这样,邮件发送过程的日志会在控制台打印出来,方便排查错误
debug: true
发送一封普通的邮件
package com.async;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import java.util.Date;
@SpringBootTest
class AsyncApplicationTests {
@Test
void contextLoads() {
}
@Autowired
JavaMailSender javaMailSender;
@Test
void sendSimpleMail(){
// 构建一个邮件对象
SimpleMailMessage message = new SimpleMailMessage();
// 设置邮件主题
message.setSubject("这是一封测试邮件");
// 设置邮件发送者,这个跟application.yml中设置的要一致
message.setFrom("2********0@qq.com");
// 设置邮件接收者,可以有多个接收者,中间用逗号隔开,以下类似
// message.setTo("10*****16@qq.com","12****32*qq.com");
message.setTo("2********0@qq.com");
// 设置邮件抄送人,可以有多个抄送人
// message.setCc("12****32*qq.com");
// 设置隐秘抄送人,可以有多个
// message.setBcc("7******9@qq.com");
// 设置邮件发送日期
message.setSentDate(new Date());
// 设置邮件的正文
message.setText("这是测试邮件的正文");
// 发送邮件
javaMailSender.send(message);
}
}
发送结果
抄送:将邮件同时送给收信人以外的人,用户所写的邮件抄送一份给别人,对方可以看见该用户的E-mail发送给了谁。
密送:将邮件同时送给收信人以外的人,用户所写的邮件抄送一份给别人,但是对方不能查看到这封邮件同时还发送给了哪些人。