5分钟快速掌握邮件发送功能
配合B站视频讲解:
点击这里跳转
前言
我们实战项目中,有很多运用到邮件发送功能,那我们今天就来分享一下一个非常短小精悍的邮件发送功能写法。项目中运用邮箱主要有以下几类应用:
- 通过邮箱找回密码,例如博客园
- 消息提醒
-
应用授权(下载XShell,Oracle JDK8等等)
-
信息传递,也就是我们邮箱最基础的功能,就是给你发送 一些数据信息
原理
本文演示,使用QQ邮箱发邮件至163邮箱
- 用户A 使用QQ邮箱编辑了一封邮件
- 填写收件人后,点击发送
- QQ邮箱服务器接收到用户A的邮件
- QQ邮箱服务器使用SMTP 服务器将邮件发送给163服务器
- 163服务器使用SMTP服务器接收,然后存储
- 163服务器将接收的邮件发送给用户B的163邮箱客户端
核心:使用smtp协议传输(校验用户,建立连接,发送邮件)
实战应用
本文使用,hutool工具箱实现邮件发送功能
- 添加依赖,需要添加两个依赖,一个是邮件依赖,一个是工具箱依赖
<!-- 加入hu tool 工具箱 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.3.7</version>
</dependency>
<!-- 加入邮件依赖 -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
- 在resource下建一个config目录,然后建立mail.setting文件夹
mail.setting
# 邮箱配置
# 发件人(必须正确,否则发送失败)
from = test@qq.com
# 密码(注意,某些邮箱需要为SMTP服务单独设置密码,详情查看相关帮助)
pass = nyfbjgzinmntjxst
- 编码实现
// 一行代码搞定
// 普通文本邮件
MailUtil.send("hutool@foxmail.com", "测试", "邮件来自Hutool测试", false);
// 邮件正文为html邮件
MailUtil.send("hutool@foxmail.com", "测试", "<h1>邮件来自Hutool测试</h1>", true);
// 发送附件
MailUtil.send("hutool@foxmail.com", "测试", "<h1>邮件来自Hutool测试</h1>", true,new File("D:/1.xlsx"));
// 给多个邮箱发送
List<String> emails = new ArrayList<>();
emails.add("hutool1@foxmail.com");
emails.add("hutool2@foxmail.com");
MailUtil.send(emails, "测试", "<h1>邮件来自Hutool测试</h1>", true,new File("D:/1.xlsx"));
// 发送多个附件
MailUtil.send("hutool@foxmail.com", "测试", "<h1>邮件来自Hutool测试</h1>", true,new File("D:/1.xlsx"),File("D:/2.xlsx"));
- 效果
非常非常简单~~
安利一波公众号:GitHub严选(学习资料,项目推荐,技术分享)