SpringBoot之实现邮件发送
发布于 2024-07-19
1502
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
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葵花宝典的其他文章
Spring Cloud LoadBalancer:实现高效负载均衡的必备工具
,Spring Cloud LoadBalancer作为新一代的负载均衡解决方案,正以其出色的性能和灵活的特性成为开发者们追捧的爆款工具。
Spring Boot + MyBatis-Plus 实现 MySQL 主从复制动态数据源切换
MySQL 主从复制是一种常见的数据库架构,它可以提高数据库的性能和可用性。动态数据源切换则可以根据业务需求,在不同场景下使用不同的数据源,比如在读多写少的场景下,可以通过切换到从库来分担主库的压力
Spring-3-Spring AOP概念全面解析
今日目标 能够理解AOP的作用能够完成AOP的入门案例能够理解AOP的工作流程能够说出AOP的五种通知类型一
云计算-使用Kubeadm在阿里云搭建单Master多Node的K8S
云计算-13-使用Kubeadm在阿里云搭建单Master多Node的K8S集群
SpringBoot中的异步多线程使用及避坑指南
SpringBoot中的异步多线程必坑指南
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线