SpringBoot之实现邮件发送
发布于 2024-07-19
1501
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
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葵花宝典的其他文章
面试官:@AutoConfigurationPackage 和 @ComponentScan 有何区别?
面试官:@AutoConfigurationPackage 和 @ComponentScan 有何区别?
Spring Event 与 AOP 结合:优雅记录日志的艺术
在构建现代化的应用中,日志记录是不可或缺的一环。Spring 框架为我们提供了强大的事件机制(Spring Event)和切面编程(AOP),结合使用可以实现优雅的日志记录,使得代码更加模块化和可维护
Spring中 @Controller和@RestController区别
Spring中 @Controller和@RestController区别
Optional类的使用指南:解决空指针异常
Optional类的使用指南:解决空指针异常
云计算--Docker在Centos上的安装
Docker在Centos上的安装Docker是一个划时代开源项目,使用Docker让应用的部署、测试和发布
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线