扫码阅读
手机扫码阅读

SpringBoot之实现邮件发送

593 2024-07-19

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

查看原文:SpringBoot之实现邮件发送
文章来源:
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葵花宝典
扫码关注公众号