刚上班小白公司需求是完成一个邮件发送功能,网上找了一下可以使用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;">&nbsp;&nbsp;{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 = "&nbsp;&nbsp;正文!";//落款处需要时间则加上/*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工具完成发(带模板)邮件功能相关推荐

  1. 实现Spring Boot 定时发送带附件邮件功能

    文章目录 版本说明: 1.pom依赖 2.配置 3.通过EasyExcel 将数据导出为Excel 4.发送邮件 5.定时功能 6.常用邮箱的服务器(SMTP/POP3)地址和端口总结 版本说明: s ...

  2. 按键精灵脚本打包工具(自带热更新功能)方便有需要的人有教程有链接

    按键精灵小精灵打包工具下载链接:  按键精灵打包工具下载链接 有需要的自行下载吧,比世面上收费的功能强大,具有热更新功能. 直接就可以把自己的程序打包成apk使用.

  3. 打开手机自带的邮件向指定邮箱发送邮件

    点击时弹出确认框,确定后打开手机自带的邮件功能,向指定邮箱发送邮件 C#按钮调用sdk,传入参数,实现打开邮件功能 public void onBackPressed() {   new AlertD ...

  4. SpringBoot 使用 Thymeleaf 如何发送带模板的Email邮件

    SpringBoot+Thymeleaf发送模板邮件 如何在Spring Boot 应用中发送邮件以及使用简单强大的Thymeleaf模板引擎来制作邮件内容. 一.授权码 常用的电子协议有POP3,S ...

  5. 谁还写周报啊?Python小工具发个周报邮件给老板就行

    缘起: 新跳槽到一家公司, 没想到第一个挑战居然是每周都要发周报. 告诉老板这周都干了些什么和下周准备干什么. 我记性不好, 常常忘事儿. 所以很多时候周报都会忘记发送. 于是, 就决定写一个小工具好 ...

  6. HuTool工具的使用介绍和常用案例

    HuTool工具的使用介绍和常用案例 一. 是什么 ​ 一个小而全的java工具类,静态方法封装.由开源项目作者的项目中一个util包衍变而来,里面包含了各种平时我们会用到的工具类. ​ 官方文档 二 ...

  7. Zabbix自带模板监控MySQL服务

    Zabbix的服务端与客户端的安装这里不再赘述了,前面也有相应的文章介绍过了,感兴趣的伙伴们可以看看历史文章就可以了,今天主要介绍下如何利用zabbix自带的模板来监控MySQL服务的一些状态,同时通 ...

  8. Laravel自带SMTP邮件组件实现发送邮件(QQ、163、企业邮箱都可)

    laravel自带SMTP邮件配置和遇到的坑 laravel自带SwiftMailer库,集成了多种邮件API,可以很方便的实现邮件的发送.在本教程中使用到的是SMTP(Simple Message ...

  9. 苹果自带相册打马赛克_不愧是vivo!自带的修图功能分分钟秒杀第三方工具,你有用过吗?...

    很多人选择vivo手机是被它的高颜值或实用功能所吸引,确实,vivo手机不仅颜值高,还有自带很多实用的功能,有些功能还是其它手机所没有的.今天我们要来说的就是vivo自带的修图功能,它的修图功能非常强 ...

最新文章

  1. 分享:RethinkDB 1.3 发布,分布式 JSON 数据库
  2. Java黑皮书课后题第5章:5.10(找出能被5和6整除的数)编写程序,显示从100到1000之间所有能被5和6整除的数,每行显示10个。数字之间用一个空格字符隔开
  3. 安卓开发必须会的技能!浅谈Android消息机制原理,威力加强版
  4. Grafana 使用教程 --- 开源的度量分析与可视化套件
  5. 【已经解决】TypeError: read_img() missing 1 required positional argument: ‘filename‘
  6. 宋宝华: 一图理解终端、会话、 进程组、进程关系
  7. 互联网人愚人节整蛊指南
  8. R语言如何释放运行之后的内存?
  9. 瀚高数据库php连接,HighGo瀚高数据库4.3版本安装说明
  10. ARM Cortex-A系列(A53、A57、A73等)处理器性能分类与对比
  11. xv6的sleep和wakeup
  12. 用JavaScript读取excel并按列转换为数组
  13. 【CNC——第9.1篇】使用Setup引导程序整定步进电机(开环步进电机整定方式之1)
  14. mysql的下载安装
  15. Linux下开源打包工具fpm的安装与使用(超详细)
  16. Win10开启telnet功能
  17. 白痴学日语系列之Last Term附语法一
  18. pve 缩小LXC 磁盘
  19. seo网站优化小技巧
  20. Tomcat 7 相关参数优化说明及配置最佳案例

热门文章

  1. Word文档快速翻译的方法,一分钟学会
  2. 如何生成玫瑰?|数字艺术
  3. javaScript判断当前浏览器(谷歌、火狐、IE)兼容IE11
  4. React中useMemo函数【调优的不二选则】的使用及一看就会的案例(个人觉得很详细了,而且包含了很多知识点呀)
  5. 关于开发语言个人随想
  6. Show出你的高超技能 首届“中国高性能云计算创新大赛”要开赛啦!
  7. 用手机写一个抓cookie软件
  8. 前端 Leader 是如何带领团队和建设团队文化的
  9. 【Cocos2D-X 游戏引擎】初窥门径(4)Touch 事件:移动精灵
  10. 作业成本法中的成本动因分析----by AMT 邓为民