使用Hutool工具完成发(带模板)邮件功能
刚上班小白公司需求是完成一个邮件发送功能,网上找了一下可以使用Hutool工具的MailUtil完成;费了点时间,最终还是完成了发邮件功能
直接开始正文。
新建一个maven工程,建好的工程目录(idea)
分别在resources文件夹下新建template.html(邮件模板)和在子文件夹config下新建一个mail.setting配置文件。
template.html :该文件中{0}、{1}等可以使用MessageFormat替换成我们想要的内容,后面可以看到!
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title></title></head><body><div class="info-top" style="padding: 15px 25px;border-top-left-radius: 10px;border-top-right-radius: 10px;background: burlywood;color: crimson;line-height: 10px;"><div style="font-size: 18px" ><b>信 息 认 证</b></div></div><div class="info-wrap" style="border-bottom-left-radius: 10px;border-bottom-right-radius: 10px;border:1px solid #ddd;overflow: hidden;padding: 15px 15px 20px;"><div class="tips" style="padding:15px;"><p style=" list-style: 160%; margin: 10px 0;"><h3>Hi</h3>以下信息请您仔细阅读:</p><p style=" list-style: 160%; margin: 10px 0;"> {0}</p></div><div class="time" style="text-align: right; color: #999; padding: 0 15px 15px;">{1}</div><br></div></body></html>
mail.setting:
host = 公司邮箱的服务器地址
port = 465
from = 公司邮箱
user = 邮箱用户名
pass = 密码
starttlsEnable = truesslEnable = true
socketFactoryClass = javax.net.ssl.SSLSocketFactory
socketFactoryFallback = true
socketFactoryPort = 465timeout = 0
connectionTimeout = 0
配置好上面两个文件之后,先使用输入流的方式读取建好的template.html,将该文件作为邮件模板。再将设置好的内容替换html文件中{0}和{1}。看代码:
//读取到html文件模板,替换文件模板中的信息public static String scopeTemplate(){String filename = "templates.html";InputStream inputStream = ClassLoader.getSystemResourceAsStream(filename);BufferedReader fileReader = new BufferedReader(new InputStreamReader(inputStream));StringBuffer buffer = new StringBuffer();String line = "";try{while((line = fileReader.readLine()) != null){buffer.append(line);}}catch(IOException e){e.printStackTrace();System.out.println("read template");}finally {if (inputStream != null){try{inputStream.close();}catch(Exception e){e.printStackTrace();}}if (fileReader != null){try{fileReader.close();}catch(Exception e){e.printStackTrace();}}}String contentText = " 正文!";//落款处需要时间则加上/*SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String date = sdf.format(new Date());*/String inscription = "❌❌公司";String htmlText = MessageFormat.format(buffer.toString(),contentText,inscription);return htmlText;}
使用MailUtil工具类的send方法发送邮件。这里有两张方式(可以使用写好的实例方式,也可以使用mail.setting配置文件方式。这里我用的就是配置文件的方式) 看方法代码:
public static boolean sendMail(){String theme = "安全邮件";MailUtil.send("目的邮箱",theme,scopeTemplate(),true);return true;}
最后直接使用main方法调用就好了。因为我测试的时候所有的方法是写在同一个类里面的,并且写成了静态方法。所以直接调用就好了。
最后,附上一张测试成功图片,有问题的话欢迎评论指正;
使用Hutool工具完成发(带模板)邮件功能相关推荐
- 实现Spring Boot 定时发送带附件邮件功能
文章目录 版本说明: 1.pom依赖 2.配置 3.通过EasyExcel 将数据导出为Excel 4.发送邮件 5.定时功能 6.常用邮箱的服务器(SMTP/POP3)地址和端口总结 版本说明: s ...
- 按键精灵脚本打包工具(自带热更新功能)方便有需要的人有教程有链接
按键精灵小精灵打包工具下载链接: 按键精灵打包工具下载链接 有需要的自行下载吧,比世面上收费的功能强大,具有热更新功能. 直接就可以把自己的程序打包成apk使用.
- 打开手机自带的邮件向指定邮箱发送邮件
点击时弹出确认框,确定后打开手机自带的邮件功能,向指定邮箱发送邮件 C#按钮调用sdk,传入参数,实现打开邮件功能 public void onBackPressed() { new AlertD ...
- SpringBoot 使用 Thymeleaf 如何发送带模板的Email邮件
SpringBoot+Thymeleaf发送模板邮件 如何在Spring Boot 应用中发送邮件以及使用简单强大的Thymeleaf模板引擎来制作邮件内容. 一.授权码 常用的电子协议有POP3,S ...
- 谁还写周报啊?Python小工具发个周报邮件给老板就行
缘起: 新跳槽到一家公司, 没想到第一个挑战居然是每周都要发周报. 告诉老板这周都干了些什么和下周准备干什么. 我记性不好, 常常忘事儿. 所以很多时候周报都会忘记发送. 于是, 就决定写一个小工具好 ...
- HuTool工具的使用介绍和常用案例
HuTool工具的使用介绍和常用案例 一. 是什么 一个小而全的java工具类,静态方法封装.由开源项目作者的项目中一个util包衍变而来,里面包含了各种平时我们会用到的工具类. 官方文档 二 ...
- Zabbix自带模板监控MySQL服务
Zabbix的服务端与客户端的安装这里不再赘述了,前面也有相应的文章介绍过了,感兴趣的伙伴们可以看看历史文章就可以了,今天主要介绍下如何利用zabbix自带的模板来监控MySQL服务的一些状态,同时通 ...
- Laravel自带SMTP邮件组件实现发送邮件(QQ、163、企业邮箱都可)
laravel自带SMTP邮件配置和遇到的坑 laravel自带SwiftMailer库,集成了多种邮件API,可以很方便的实现邮件的发送.在本教程中使用到的是SMTP(Simple Message ...
- 苹果自带相册打马赛克_不愧是vivo!自带的修图功能分分钟秒杀第三方工具,你有用过吗?...
很多人选择vivo手机是被它的高颜值或实用功能所吸引,确实,vivo手机不仅颜值高,还有自带很多实用的功能,有些功能还是其它手机所没有的.今天我们要来说的就是vivo自带的修图功能,它的修图功能非常强 ...
最新文章
- 分享:RethinkDB 1.3 发布,分布式 JSON 数据库
- Java黑皮书课后题第5章:5.10(找出能被5和6整除的数)编写程序,显示从100到1000之间所有能被5和6整除的数,每行显示10个。数字之间用一个空格字符隔开
- 安卓开发必须会的技能!浅谈Android消息机制原理,威力加强版
- Grafana 使用教程 --- 开源的度量分析与可视化套件
- 【已经解决】TypeError: read_img() missing 1 required positional argument: ‘filename‘
- 宋宝华: 一图理解终端、会话、 进程组、进程关系
- 互联网人愚人节整蛊指南
- R语言如何释放运行之后的内存?
- 瀚高数据库php连接,HighGo瀚高数据库4.3版本安装说明
- ARM Cortex-A系列(A53、A57、A73等)处理器性能分类与对比
- xv6的sleep和wakeup
- 用JavaScript读取excel并按列转换为数组
- 【CNC——第9.1篇】使用Setup引导程序整定步进电机(开环步进电机整定方式之1)
- mysql的下载安装
- Linux下开源打包工具fpm的安装与使用(超详细)
- Win10开启telnet功能
- 白痴学日语系列之Last Term附语法一
- pve 缩小LXC 磁盘
- seo网站优化小技巧
- Tomcat 7 相关参数优化说明及配置最佳案例