扫码阅读
手机扫码阅读
SpringBoot之实现邮件发送

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。


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-18-Mybatis基础操作
SpringBoot-18-Mybatis基础操作
网站工作流程介绍
我们学习web开发,首先要知道什么是Web?Web: 全球广域网,也称为万维网(www World Wide
Swagger快速入门:打造清晰的API文档
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(\x26lt;https://swagger.io/\x26gt;)
GC是什么?为什么要GC?JVM 垃圾回收算法有哪些?
GC是什么?为什么要GC?JVM 垃圾回收算法有哪些?
SpringBoot-10-全局异常
本文介绍SpringBoot的全局异常统一处理。
加入社区微信群
与行业大咖零距离交流学习


PMO实践白皮书
白皮书上线
白皮书上线