文章目录

  • 前言
  • 一、引入第三方依赖
  • 二、邮件服务器配置
    • 1. 创建 resources/config目录下的mail.setting文件
    • 2. 直接在方法中调用 hutool 的方法
  • 总结

前言

Hutool 是⼀个⼩⽽全的Java⼯具类库,通过静态⽅法封装,降低相关API的学习成本,提⾼⼯作效率。


其实 hutool 官方文档里也有步骤的

一、引入第三方依赖

<dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.6.2</version>
</dependency>

二、邮件服务器配置

1. 创建 resources/config目录下的mail.setting文件

代码如下(示例):

# 邮件服务器的SMTP地址,可选,默认为smtp.<发件人邮箱后缀>
host = smtp.qq.com
# 邮件服务器的SMTP端口,可选,默认25
port = 465
# 发件人(必须正确,否则发送失败)
from = xx@qq.com
# 用户名,默认为发件人邮箱前缀
user = xx
# 密码(注意,某些邮箱需要为SMTP服务单独设置授权码,详情查看相关帮助)
pass = xxxxxxxxxxx# 使用STARTTLS安全链接
startttlsEnable = true# 使用SSL安全连接
sslEnable = true
# 指定实现javax.net.SocketFactory接口的类的名称,这个类将被用于创建SMTP的套接字
socketFactoryClass = javax.net.ssl.SSLSocketFactory
# 如果设置为true,未能创建一个套接字使用指定的套接字工厂类将导致使用java.net.Socket创建的套接字类, 默认值为true
socketFactoryFallback = true
# 指定的端口连接到在使用指定的套接字工厂。如果没有设置,将使用默认端口456
socketFactoryPort = 465# SMTP超时时长,单位毫秒,缺省值不超时
timeout = 0
# Socket连接超时值,单位毫秒,缺省值不超时
connectionTimeout = 0

这里的mail.setting文件是text文本类型的,图标如下:

因为我之前搞了这个文件搞了好久,一般是可以通过 new->File建立这个文件的,但是我这样创建出来的图标就不是这样的,然后捯饬了好久,方法是选择那个文件,然后右键,再选择Override File Type,然后我选择的是CSV/TSV Data类型。

2. 直接在方法中调用 hutool 的方法

代码如下(示例):

// 获取系统当前时间
SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
Date date = new Date(System.currentTimeMillis());
// 拼接邮件html内容,我是先在Html里写好,粘贴过来的
StringBuilder contentAll = new StringBuilder("批量短信发送失败的人如下:" + "(发送失败的时间 : " + formatter.format(date) + ")" + "<table width=\"70%\" height=\"50px\" align=\"center\" border=\"2\" cellpadding=\"15px\" cellspacing=\"0\"" +"<thead>" +"<tr>" +"<th>id</th> <th>签名</th> <th>电话</th> <th>短信模板</th>" +"</tr>" +"</thead>" );
// i 是为了显示有几条数据
int i = 1;
for (Sms sms : smsList) {while (i <= smsList.size()) {String tr ="<tbody>" +"<tr>" +"<td>" + i + "</td> <td>" + sms.getSign() + "</td> <td>" + sms.getTel() + "</td> <td>" + sms.getTemplate().getContent() + "</td>" +"</tr>" +"</tbody>";contentAll.append(tr);i++;}
}
contentAll.append("</table>");
// import cn.hutool.extra.mail.MailUtil;
MailUtil.send("XXX@qq.com(收件人的邮箱)", "标题", contentAll(邮件内容), true(是否是html格式));
  • 不是html格式的内容,其实就直接写上面最后一句,然后把 true 改成 false .因为我的是html格式的,所以才会有上面的拼接。
  • 其实调用 send 的那一句,可以先直接写测试类中,也是可以成功的。

总结

  • Hutool的⽬标是使⽤⼀个⼯具⽅法代替⼀段复杂代码,从⽽最⼤限度的避免“复制粘贴”代码的问题,彻底改变我们写代码的⽅式

这次又学习到了一个新的工具包,不得不说,hutool还是很强的,我以前实现发送邮件的功能,写的代码远多于这个。

用hutool实现邮件发送功能相关推荐

  1. 利用hutool实现邮件发送功能

    如何利用hutool工具包实现邮件发送功能呢? 1.首先引入hutool依赖 <dependency><groupId>cn.hutool</groupId>< ...

  2. android 添加附件功能,Android实现带附件的邮件发送功能

    本文实例讲解了基于基于jmail实现android邮件发送功能,分享给大家供大家参考,具体内容如下 在android上发送邮件方式: 第一种:借助gmail app客户端,缺点是必须使用gmail帐号 ...

  3. android 信息添加附件功能,Android实现带附件的邮件发送功能

    本文实例讲解了基于基于JMail实现Android邮件发送功能,分享给大家供大家参考,具体内容如下 在android上发送邮件方式: 第一种:借助GMail APP客户端,缺点是必须使用GMail帐号 ...

  4. Java技术:SpringBoot实现邮件发送功能

    邮件发送功能基本是每个完整业务系统要集成的功能之一,今天小编给大家介绍一下SpringBoot实现邮件发送功能,希望对大家能有所帮助! 今天主要给大家分享简单邮件发送.HTML邮件发送.包含附件的邮件 ...

  5. Spring Boot最新版集成邮件发送功能大全

    Spring Boot最新版集成邮件发送功能大全 前言 一.开启SMTP服务并获取授权码 二.创建Spring Boot项目 1.配置邮箱基本信息: 2.简单邮件发送: 3.发送带附件的邮件: 5.使 ...

  6. node.js发送html,利用Node.JS实现邮件发送功能

    第一步.配置篇 首先需要安装nodemailer库 npm install nodemailer//默认会安装最新的版本. 关于这个库的文档参见nodemailer 第二步.库的一些使用介绍 这个库使 ...

  7. python实现邮件发送功能

    用最简单的方法实现邮件发送功能,拒绝重复造轮子,提供工作效率. 目录 1.安装依赖 2.发送文本邮件 3.发送多人邮件 4.发送附件邮件 1.安装依赖 pip install yagmail 2.发送 ...

  8. Laravel 6 结合网易/阿里邮箱基本邮件发送功能使用

    如果没有自建邮件服务器,直接结合网易.阿里邮箱可以非常简单方便的使用邮件发送功能. 注册前首先得保证自己有一个域名,阿里最好是在当前账户下有一个已注册的域名. 根据下方地址注册相应的账户信息,选择其中 ...

  9. NET开发邮件发送功能的全面教程(含邮件组件源码)(

    天,给大家分享的是如何在.NET平台中开发"邮件发送"功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下. AD:2013云计算架构师峰会精彩课程曝光 ...

最新文章

  1. 指针02 - 零基础入门学习C语言42
  2. 编程之美-电梯调度算法方法整理
  3. 5月28日任务 Apache和PHP结合、Apache默认虚拟主机
  4. 404页面 3秒后跳到首页 实现
  5. java学习之(内部类)
  6. js属性对象的hasOwnProperty方法
  7. 一篇文章教会你使用Python中三种简单的函数
  8. 用千元左右的手机你会感到没面子吗?网友回答令人赞叹
  9. app开发团队人员构成怎么分配?国内著名的app开发团队有哪些
  10. 周志华机器学习西瓜书速记第二章绪论模型评估与选择(一)
  11. 计算机应用基础实训教程视频,计算机应用基础与实训教程第7章.ppt
  12. Vue 可拖拽的组件
  13. matlab中uigetfile命令的应用
  14. 强大实用的win10任务栏创建分组菜单工具
  15. 如何成为一名IC验证工程师——IC修真院直播
  16. 鲁班图片压缩实现仿微信九宫格选择图片效果
  17. 【轮子1】造一个炫酷的DEBUG输出
  18. Linux故障之内核反向路由检测
  19. 关于编辑器EditPlus
  20. 数据库设计 一对多 多对多 无限级菜单 设计方法

热门文章

  1. Problem C: 农夫果园
  2. 研发效能团队如何拥抱开源社区?一些前沿理念与朴素认知
  3. matlab中的sig函数,MATLAB——sigmoid传递函数
  4. CloudCompare:点云间重叠区可视化对比
  5. 抽象类与接口的区别,以及使用依据
  6. nest.dll_每日新闻摘要:再见Nest.com,您好Google Store
  7. 辅助方法、模型、视图数据
  8. JS的3种加密方式:base64编码、md5加密及sha加密
  9. typec扩展坞hdmi没反应_手机通过扩展坞连笔记本HDMI接口,笔记本屏幕为啥没反应?...
  10. Android 开发初步环境搭建