今天在做项目的时候,对于用户登录的时候,想到了能不能通过qq邮箱登录,于是就去网上搜了一下,发现springboot已经整合了邮件发送,而且非常的简单,下面我就简单讲解一下我自己用QQ邮箱发送邮件的过程。
首先我们先登录到自己的QQ邮箱,点击设置,再点击账户
往下滑,开启我们的POP3/SMTP服务,然后点击生成后授权码
点击生成授权码后,用自己qq绑定的电话号码按照要求发送短信
发送完后,点击我已发送,就能得到授权码,自己复制粘贴保存一下,后面需要用到。到这里我们的请qq邮箱设置就完成了,后面只需要去项目中完成调用即可。
打开我们的项目,首先需要添加pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
然后添加yml配置,主要就是配置发件人和刚刚我们的得到的授权码
spring:
mail:
# 邮件服务器地址
host: smtp.qq.com
# 你的邮箱地址
username: *******@qq.com
# 授权码
password: 刚刚得到的授权码
# 编码格式
default-encoding: utf-8
# 协议
protocol: smtp
port: 465
properties:
mail:
smtp:
auth: true
starttls:
enable: true
required: true
socketFactory:
port: 465
class: javax.net.ssl.SSLSocketFactory
我们只需要填写自己的邮箱地址和刚刚得到的授权码即可,需要注意的是,这里的password并不是自己qq的密码,就是填写我们刚刚得到的授权码,我们的mail配置是在spring的一级目录下,千万别搞错了。到这里,我们项目的配置也已经完成,就可以发送邮件了,我们去测试类里面测试一下。
这是写在我的测试类里面
@Autowired
JavaMailSender javaMailSender;
@Test
public void seentemail(){
SimpleMailMessage simpleMailMessage=new SimpleMailMessage();
发送的主题
simpleMailMessage.setSubject("测试一下");
发送人,这必须与我们刚刚的yml配置的邮箱地址要一样
simpleMailMessage.setFrom("*******@qq.com");
收件人的邮箱地址
simpleMailMessage.setTo("*******@qq.com");
///发送时间
simpleMailMessage.setSentDate(new Date());
发送的邮件的具体雷人
simpleMailMessage.setText("你好啊");
javaMailSender.send(simpleMailMessage);
}
最后运行测试可以发送邮件,后面我们根据自己的需求,发送验证码或者邮件。