当前位置:   article > 正文

JAVA SpringBoot 使用 hutool 工具实现发送邮件功能_hutool mailutil

hutool mailutil

官方文档  邮件工具-MailUtil (hutool.cn)icon-default.png?t=N7T8https://hutool.cn/docs/#/extra/%E9%82%AE%E4%BB%B6%E5%B7%A5%E5%85%B7-MailUtil

引入hutool包

  1. <dependency>
  2. <groupId>cn.hutool</groupId>
  3. <artifactId>hutool-all</artifactId>
  4. <version>5.8.12</version>
  5. </dependency>

引入发送邮件工具包

  1. <dependency>
  2. <groupId>com.sun.mail</groupId>
  3. <artifactId>javax.mail</artifactId>
  4. <version>1.6.2</version>
  5. </dependency>

开启邮箱SMTP服务,获取授权码,授权码只显示一次,请保存后在关闭授权码窗口

发送邮件测试

  1. MailAccount account = new MailAccount();
  2. account.setHost("smtp.qq.com");//邮件服务器的SMTP地址,网易邮箱为smtp.163.com
  3. account.setPort(587);//邮件服务器的SMTP端口,QQ邮箱为465或587,网易邮箱为25
  4. account.setAuth(true);
  5. account.setFrom("xxxxxxxxxx@qq.com");//设置发送人邮箱
  6. account.setUser("xxxxxxxxxx");//发送人用户名
  7. account.setPass("xxxxxxxxxxxxxxxx");//密码或者授权码
  8. account.isSslEnable();//部分邮箱需要开启SSL
  9. /**
  10. 使用SSL加密方式发送邮件 在使用QQ或Gmail邮箱时,需要强制开启SSL支持
  11. **/
  12. MailUtil.send(account, "xxxxxxxxxx@qq.com", //接收人邮箱
  13. "测试主题", "TEST", false);

以下是封装后的代码(以qq邮箱为例)

  1. import cn.hutool.extra.mail.MailAccount;
  2. import cn.hutool.extra.mail.MailUtil;
  3. import java.io.File;
  4. public class SendMail {
  5. private static final MailAccount account=new MailAccount();
  6. /***
  7. * receiverMail 接收人邮箱 ,也可以将String参数设置成集合如List<String>,
  8. * List<String>中存储多个邮箱地址,可以实现批量发送邮件
  9. * theme 发送邮件的标题 ,
  10. * Text 发送邮件的文本内容,
  11. * isHtml 当isHtml为ture且Text文本内容为html格式代码,邮件会以网页格式呈现
  12. * files 发送附件,可以发送多个附件,files可以为空,默认没有附件发送
  13. */
  14. public static void sendQQMail(String receiverMail, String theme,
  15. String Text, Boolean isHtml,File... files){
  16. account.setHost("smtp.qq.com");
  17. account.setPort(587);
  18. account.setAuth(true);
  19. account.setFrom("xxxxxxxxxx@qq.com");
  20. account.setUser("xxxxxxxxxx");
  21. account.setPass("xxxxxxxxxxxxxxxx");
  22. account.isSslEnable();
  23. //使用SSL加密方式发送邮件 在使用QQ或Gmail邮箱时,需要强制开启SSL支持
  24. MailUtil.send(account, receiverMail, theme, Text, isHtml,files);
  25. }
  26. }

 测试

  1. @Test
  2. public void sendMail() {
  3. SendMail.sendQQMail("xxxxxxxxxx@qq.com","测试主题","TEST",false);
  4. }

接收成功

 SpringBoot配置文件

  1. # 邮件服务器的SMTP地址
  2. host = smtp.qq.net
  3. # 邮件服务器的SMTP端口
  4. port = 465
  5. # 发件人(必须正确,否则发送失败)
  6. from = xxxxxxl@qq.com
  7. # 用户名(注意:如果使用foxmail邮箱,此处user为qq号)
  8. user = xxxxxx
  9. # 密码(注意,某些邮箱需要为SMTP服务单独设置密码,详情查看相关帮助)
  10. pass =xxxxxx
  11. #使用 STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展。
  12. starttlsEnable = true
  13. # 使用SSL安全连接
  14. sslEnable = true
  15. # 指定实现javax.net.SocketFactory接口的类的名称,这个类将被用于创建SMTP的套接字
  16. socketFactoryClass = javax.net.ssl.SSLSocketFactory
  17. # 如果设置为true,未能创建一个套接字使用指定的套接字工厂类将导致使用java.net.Socket创建的套接字类, 默认值为true
  18. socketFactoryFallback = true
  19. # 指定的端口连接到在使用指定的套接字工厂。如果没有设置,将使用默认端口456
  20. socketFactoryPort = 465
  21. # SMTP超时时长,单位毫秒,缺省值不超时
  22. timeout = 0
  23. # Socket连接超时值,单位毫秒,缺省值不超时
  24. connectionTimeout = 0

或者配置mail.setting

  1. # 邮件服务器的SMTP地址,可选,默认为smtp.<发件人邮箱后缀>
  2. host = smtp.qq.com
  3. # 邮件服务器的SMTP端口,可选,默认25
  4. port = 587
  5. # 发件人(必须正确,否则发送失败)
  6. from = xxxxxx@qq.com
  7. # 用户名,默认为发件人邮箱前缀
  8. user =xxxxxx
  9. # 密码(注意,某些邮箱需要为SMTP服务单独设置授权码,详情查看相关帮助)
  10. pass = *****

属性

  1. tos: 对方的邮箱地址,可以是单个,也可以是多个(Collection表示)
  2. subject:标题
  3. content:邮件正文,可以是文本,也可以是HTML内容
  4. isHtml: 是否为HTML,如果是,那参数3识别为HTML内容
  5. files: 可选:附件,可以为多个或没有,将File对象加在最后一个可变参数中即可
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/908052
推荐阅读
相关标签
  

闽ICP备14008679号