SpringBoot之实现邮件发送
发布于 2024-07-19
1235
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
springboot葵花宝典
扫码关注公众号
扫码阅读
手机扫码阅读
SpringBoot实现邮件发送摘要
依赖与准备
在Java中发送邮件主要依赖Javax.mail库,但操作繁琐。通过使用Hutool的MailUtil工具,可以简化邮件发送流程。需要引入以下依赖:
- javax.mail: mail 1.4.7
- Hutool: hutool-all 5.5.7
邮件服务器配置文件可放置于项目的 src/main/resources/config/mail.setting 目录下,以QQ邮箱为例进行SSL方式配置。
邮件发送实现
1. 发送普通文本邮件
使用Hutool封装的MailUtil类,只需调用 send 方法并传递参数即可完成邮件发送。示例代码如下:
// 收件人
ArrayList tos = CollUtil.newArrayList("XXXXXXXX@qq.com");
MailUtil.send(tos, "公司Offer", "欢迎你的到了", false);
参数说明:
- tos: 收件人地址,可为一个或多个。
- subject: 邮件标题。
- content: 邮件正文,可为文本或HTML。
- isHtml: 是否为HTML格式。
- files: 可选附件,为File对象。
2. 使用HTML格式发送邮件
// 收件人
ArrayList tos = CollUtil.newArrayList("XXXXXXXX@qq.com");
// 使用HTML格式发送邮件
MailUtil.send(tos, "公司Offer", "欢迎你的到来", true);
3. 发送邮件带附件和抄送
// 收件人
ArrayList tos = CollUtil.newArrayList("825505212@qq.com");
// 抄送人
ArrayList ccs = CollUtil.newArrayList("zbbhnsfduyjs@gmail.com");
// 密抄人
ArrayList bcss = CollUtil.newArrayList("zbbhnsfduyjs@gmail.com");
// 附件
File file = FileUtil.file("D:\\微信图片_20201206221537.jpg");
MailUtil.send(tos, ccs, bcss, "公司Offer", "欢迎你的到了!", false, file);
自定义邮件发送
除了使用配置文件,还可以通过 MailAccount 对象自定义邮件发送配置。示例代码如下:
MailAccount mailAccount = new MailAccount();
mailAccount.setHost("smtp.qq.com");
mailAccount.setPort(465);
mailAccount.setFrom("XXXXXXX@qq.com");
mailAccount.setUser("XXXXXXX");
mailAccount.setPass("XXXXXXX");
mailAccount.setStarttlsEnable(true);
mailAccount.setSslEnable(true);
// 其他配置略
MailUtil.send(mailAccount, tos, "公司Offer", "欢迎你的到来", true);
注意:QQ邮箱发送邮件需使用单独生成的SMTP授权码,而不是QQ登录密码。
针对不同邮箱的说明
QQ邮箱
QQ邮箱的SMTP密码需通过邮箱设置生成授权码,非登录密码。
Foxmail邮箱
Hutool默认提取邮箱地址的用户名部分,但对于Foxmail,需手动设置为绑定的QQ号或完整的邮箱地址。
总结
本文以QQ邮箱为例,介绍了如何使用Hutool工具实现邮件发送,并包含文本、HTML、附件、抄送等多种邮件发送形式。通过配置文件或自定义MailAccount均可完成邮件发送。
更多内容,请访问作者的 GitHub 或关注相关公众号。
springboot葵花宝典
springboot葵花宝典
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
springboot葵花宝典的其他文章
Mysql如何定位慢查询,以及SQL语句执行很慢, 如何分析呢?
Mysql如何定位慢查询,以及SQL语句执行很慢, 如何分析呢?
深入理解Java字符串常量池
深入理解Java字符串常量池J
SpringBoot-3-精通Spring Boot请求响应:实战指南
当开发使用Spring Boot框架的应用程序时,请求和响应是其中一个重要的概念。请求是客户端向服务器发出的要求,而响应是服务器返回给客户端的结果。
什么是聚簇索引什么是非聚簇索引
什么是聚簇索引什么是非聚簇索引
今日内容介绍,?
Docker-Compose部署 Elasticsearch(ES集群)
Docker-Compose部署 Elasticsearch(ES集群)
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线