文章目录
- 前言
- 一、开启SMTP邮箱配置
- 二、spring-mail
- 1.引入依赖
- 2.yml配置
- 3.使用
- 二、hutool-mail
- 1.引入hutool
- 2.在resource下新增mail.setting
- 3.使用
- 总结
前言
发送邮件:
目前比较简单的有两种方式实现:
- spring-mail
- huool-mail
现在看下两种方式
一、开启SMTP邮箱配置
两种方式都需要开启邮箱配置,这里以qq邮箱为例:
1、什么是授权码?
授权码是QQ邮箱推出的,用于登录第三方客户端的专用密码。
适用于登录以下服务:POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。
温馨提醒:为了你的帐户安全,更改QQ密码以及独立密码会触发授权码过期,需要重新获取新的授权码登录。
2、怎么获取授权码?
在 账号与安全 --安全设置--SMTP/IMAP服务 中开启服务并获取授权码
3、在第三方客户端怎么设置?
在第三方客户端的密码框里面输入16位授权码进行验证。
二、spring-mail
1.引入依赖
<dependencies>
<!-- Spring 邮件依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
</dependencies>
2.yml配置
spring:
mail:
host: smtp.qq.com # SMTP服务地址
port: 465 # SMTP端口
username: jimolvxing@qq.com # 邮箱 改成自己的
password: 16位字符 # SMTP中的密码 改成自己的
default-encoding: UTF-8 #默认编码格式
properties:
mail:
# debug: true #启动debug调试
smtp:
ssl:
enable: true
3.使用
@SpringBootTest
class SendEmailTest {
@Autowired
private JavaMailSenderImpl javaMailSender;
@Test
void contextLoads() {
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setFrom(Objects.requireNonNull(javaMailSender.getUsername()));
simpleMailMessage.setSubject("测试邮件");
simpleMailMessage.setText("测试邮件内容");
simpleMailMessage.setTo("123@qq.com");
javaMailSender.send(simpleMailMessage);
}
}
二、hutool-mail
1.引入hutool
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.17</version>
</dependency>
2.在resource下新增mail.setting
新增一个文件: mail.setting
host = smtp.163.com
port = 465
# 邮箱 改成自己的; 寂寞旅行为别名
from = 寂寞旅行<jimolvxing@qq.com>
# 邮箱 改成自己的
user = jimolvxing@qq.com
# SMTP中的密码 改成自己的
pass = 16位字符
startttlsEnable = true
3.使用
public class SendEmail {
public static void main(String[] args) {
MailUtil.send(CollectionUtil.newArrayList("123@qq.com"), "验证码",
RandomUtil.randomNumbers(4), false, null);
}
}
总结
这样就实现了邮箱的发送,这里两种方式,其实配置几乎是一样的,可以照着稍微改改即可,然后端口号其实是25的,由于不安全,这里启用了ssl,所以全部都需要改为465端口;