用hutool实现邮件发送功能
文章目录
- 前言
- 一、引入第三方依赖
- 二、邮件服务器配置
- 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实现邮件发送功能相关推荐
- 利用hutool实现邮件发送功能
如何利用hutool工具包实现邮件发送功能呢? 1.首先引入hutool依赖 <dependency><groupId>cn.hutool</groupId>< ...
- android 添加附件功能,Android实现带附件的邮件发送功能
本文实例讲解了基于基于jmail实现android邮件发送功能,分享给大家供大家参考,具体内容如下 在android上发送邮件方式: 第一种:借助gmail app客户端,缺点是必须使用gmail帐号 ...
- android 信息添加附件功能,Android实现带附件的邮件发送功能
本文实例讲解了基于基于JMail实现Android邮件发送功能,分享给大家供大家参考,具体内容如下 在android上发送邮件方式: 第一种:借助GMail APP客户端,缺点是必须使用GMail帐号 ...
- Java技术:SpringBoot实现邮件发送功能
邮件发送功能基本是每个完整业务系统要集成的功能之一,今天小编给大家介绍一下SpringBoot实现邮件发送功能,希望对大家能有所帮助! 今天主要给大家分享简单邮件发送.HTML邮件发送.包含附件的邮件 ...
- Spring Boot最新版集成邮件发送功能大全
Spring Boot最新版集成邮件发送功能大全 前言 一.开启SMTP服务并获取授权码 二.创建Spring Boot项目 1.配置邮箱基本信息: 2.简单邮件发送: 3.发送带附件的邮件: 5.使 ...
- node.js发送html,利用Node.JS实现邮件发送功能
第一步.配置篇 首先需要安装nodemailer库 npm install nodemailer//默认会安装最新的版本. 关于这个库的文档参见nodemailer 第二步.库的一些使用介绍 这个库使 ...
- python实现邮件发送功能
用最简单的方法实现邮件发送功能,拒绝重复造轮子,提供工作效率. 目录 1.安装依赖 2.发送文本邮件 3.发送多人邮件 4.发送附件邮件 1.安装依赖 pip install yagmail 2.发送 ...
- Laravel 6 结合网易/阿里邮箱基本邮件发送功能使用
如果没有自建邮件服务器,直接结合网易.阿里邮箱可以非常简单方便的使用邮件发送功能. 注册前首先得保证自己有一个域名,阿里最好是在当前账户下有一个已注册的域名. 根据下方地址注册相应的账户信息,选择其中 ...
- NET开发邮件发送功能的全面教程(含邮件组件源码)(
天,给大家分享的是如何在.NET平台中开发"邮件发送"功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下. AD:2013云计算架构师峰会精彩课程曝光 ...
最新文章
- 指针02 - 零基础入门学习C语言42
- 编程之美-电梯调度算法方法整理
- 5月28日任务 Apache和PHP结合、Apache默认虚拟主机
- 404页面 3秒后跳到首页 实现
- java学习之(内部类)
- js属性对象的hasOwnProperty方法
- 一篇文章教会你使用Python中三种简单的函数
- 用千元左右的手机你会感到没面子吗?网友回答令人赞叹
- app开发团队人员构成怎么分配?国内著名的app开发团队有哪些
- 周志华机器学习西瓜书速记第二章绪论模型评估与选择(一)
- 计算机应用基础实训教程视频,计算机应用基础与实训教程第7章.ppt
- Vue 可拖拽的组件
- matlab中uigetfile命令的应用
- 强大实用的win10任务栏创建分组菜单工具
- 如何成为一名IC验证工程师——IC修真院直播
- 鲁班图片压缩实现仿微信九宫格选择图片效果
- 【轮子1】造一个炫酷的DEBUG输出
- Linux故障之内核反向路由检测
- 关于编辑器EditPlus
- 数据库设计 一对多 多对多 无限级菜单 设计方法
热门文章
- Problem C: 农夫果园
- 研发效能团队如何拥抱开源社区?一些前沿理念与朴素认知
- matlab中的sig函数,MATLAB——sigmoid传递函数
- CloudCompare:点云间重叠区可视化对比
- 抽象类与接口的区别,以及使用依据
- nest.dll_每日新闻摘要:再见Nest.com,您好Google Store
- 辅助方法、模型、视图数据
- JS的3种加密方式:base64编码、md5加密及sha加密
- typec扩展坞hdmi没反应_手机通过扩展坞连笔记本HDMI接口,笔记本屏幕为啥没反应?...
- Android 开发初步环境搭建