首先看一下模板:

引入一下邮件依赖:

​<dependency><groupId>org.apache.commons</groupId><artifactId>commons-email</artifactId><version>1.5</version></dependency>​

eamil-template.html模板文件

模板中的{0}、{1}这样的占位符后面java代码会替换掉

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title></head><body style="color: #666; font-size: 14px; font-family: 'Open Sans',Helvetica,Arial,sans-serif;"><div class="box-content" style="width: 80%; margin: 20px auto; max-width: 800px; min-width: 600px;"><div class="header-tip" style="font-size: 12px;color: #aaa;text-align: right;padding-right: 25px;padding-bottom: 10px;">中国动物疫病预防控制中心</div><div class="info-top" style="padding: 15px 25px;border-top-left-radius: 10px;border-top-right-radius: 10px;background: rgb(0,128,128);color: #fff;overflow: hidden;line-height: 32px;"><img src="https://img-blog.csdnimg.cn/2022010700564968279.png" style="float: left; margin: 0 10px 0 0; width: 32px;" /><div style="color:white"><strong>SDK服务离线通知</strong></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: '100%'; margin: 10px 0;">Hi 您好:</p><p style=" list-style: '100%'; margin: 10px 0;">您管理的服务:{0} ,已经离线!</p></div><div class="time" style="text-align: right; color: #999; padding: 0 15px 15px;">离线时间:{1}</div><br></div></div></body></html>

位置如图所示:

编写邮件发送工具类apacheEmail.java:

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;import javax.mail.MessagingException;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;/*** @author qushen* @date 2021/6/7 13:43*/
@Slf4j
@Configuration
public class apacheEmail {@Value("${mail.server}")private String server;@Value("${mail.username}")private String username;@Value("${mail.password}")private String password;@Value("${mail.sender}")private String sender;public void sendMail(String receiver, String subject, String context) throws IOException, MessagingException, EmailException {HtmlEmail email=new HtmlEmail();//创建一个HtmlEmail实例对象email.setHostName(server);//邮箱的SMTP服务器,一般123邮箱的是smtp.123.com,qq邮箱为smtp.qq.comemail.setCharset("utf-8");//设置发送的字符类型email.addTo(receiver);//设置收件人email.setFrom(sender,"服务");//发送人的邮箱为自己的,用户名可以随便填email.setAuthentication(sender,password);//设置发送人到的邮箱和用户名和授权码(授权码是自己设置的)email.setSubject(subject);//设置发送主题email.setHtmlMsg(context);email.send();log.info("邮件发送成功:{}", receiver);}}

application.properties中的邮件配置:

mail.server=smtp.88.com
mail.sender=qushen@88.com
mail.username=qushen@88.com
mail.password=tgyGHxxxxxxxx

最后就是发送获取html模板并发送的邮件的代码

import com.sws.sdkemail.email.apacheEmail;
import lombok.extern.log4j.Log4j2;
import org.apache.commons.mail.EmailException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;import javax.mail.MessagingException;
import java.io.*;
import java.text.MessageFormat;
import java.text.SimpleDateFormat;
import java.util.Date;/*** @author qushen* @date 2021/6/8 10:40*/
@Component
@Log4j2
public class Test {@Autowiredprivate apacheEmail apcemail;@Scheduled(cron = "0 0/1 * * * ?")public void emailTask() throws EmailException, MessagingException, IOException {final String path = "static/eamil-template.html";ClassPathResource resource = new ClassPathResource(path);InputStream is = resource.getInputStream();Reader reader = new InputStreamReader(is);BufferedReader htmlReader = new BufferedReader(reader);StringBuffer buffer = new StringBuffer();String line = "";try {while ((line = htmlReader.readLine()) != null) {buffer.append(line);}} catch (Exception e) {log.error("读取文件失败,fileName:{}", path, e);} finally {is.close();htmlReader.close();}SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateString = formatter.format(new Date());String htmlText = MessageFormat.format(buffer.toString(), "陕西", dateString);apcemail.sendMail("qushencn@qq.com", "服务离线通知", htmlText);}}

java发送html模板相关推荐

  1. java发送html模板的高逼格邮件

    最近做了一个监测k8s服务pod水平伸缩发送邮件的功能(当pod的cpu/内存达到指定阈值后会水平扩展出多个pod.或者指定时间内pod数应扩展到指定数量),一开始写了个格式很low的邮件,像下面这样 ...

  2. java发送微信模板消息_java微信公众平台之发送模板消息

    准备条件: 1.一个测试号,有必要说下的是订阅号没有发送模板消息这一功能,那么开发的小伙伴们就可以直接先注册一个测试号 2.目前我并没有就是做的很完善,网页授权获取openId这个我没做,那么我是直接 ...

  3. java发送短信模板_java发送短信

    java发送短信一般步骤 一.在中国网建中注册用户:本程序是通过中国网建提供的SMS短信平台实现的,该平台新用户注册可以拥有免费5条普通短信和3条彩信,足够进行尝试和体验了.中国网建注册地址:http ...

  4. Java Mail+Thymeleaf模板引擎实现发送HTML格式邮件

    Java Mail+Thymeleaf模板引擎实现发送HTML格式邮件 基于Spring boot 1.5,Spring boot 2.x请使用Spring boot mail 1.依赖坐标 // b ...

  5. java发送小程序模板消息,记录_小程序发送模板消息

    package com.mj.frame.entity.resp; import java.io.Serializable; import java.util.List; import java.ut ...

  6. java发送会议邀请邮件模板_使用java发送每封电子邮件的日历邀请

    我正在尝试使用 java发送每封电子邮件的日历邀请.收件人收到电子邮件,但该活动不会显示接受或拒绝的邀请,而是自动添加到他的日历中. 我正在使用ical4j.jar构建活动/邀请 private Ca ...

  7. 微信公众号 java发送消息_微信公众号发送模板消息 Java实现。

    本博文是测试公众号调用模板接口测试.请不要完全复制我的代码.里面的测试代码中有本人测试号的微信模板id.麻烦替换成自己的可以吗? 第一步:创建模板信息 第二步:准备模板代码实体类用到的属性自行加入就行 ...

  8. 微信公众号 java发送消息_微信公众号发送消息模板(java)

    这段时间接触公众号开发,写下向用户发送消息模板的接口调用 先上接口代码 1 public staticJSONObject sendModelMessage(ServletContext contex ...

  9. 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现)

    文章目录 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现) 1.打开腾讯云短信服务 2.创建短信签名 3.创建短信正文模板 4.等待全部审核完毕即可 5.发送短信 ...

最新文章

  1. spring aop实现过程之三Spring AOP中Aspect编织的实现
  2. ASP.Net 2.0窗体身份验证机制详解(FormsAuthentication) (转载)
  3. require 动态加载_require,exports,module.exports和import,export,export default
  4. 文件另存为时名称会改变_易经:人处在困境时,不要焦虑,改变固定习惯,就会迎来转机...
  5. Elasticsearch 实战1:ES 项目实战(一)Java 集成 Spring Data Elasticsearch(一):简介及环境搭建
  6. ios开发--编码格式
  7. C经典100题(1)
  8. Vmware Workstation常用操作和常见问题
  9. Linux从入门到精通——Linux中的补充知识点
  10. 本地 Git 文件夹显示绿色标识
  11. 删除脚注或尾注的横线
  12. 学校计算机协会面试自我介绍,个人社团面试自我介绍范文三篇
  13. 手机平板功放芯片BCT8933,PINtoPIN替换AW8733
  14. Bilibili到底有多少御坂妹?(三)
  15. 探究阿里云物联网开发板1-Haas 100
  16. MVC发布出现:未能将文件bin\xxx.xml 复制到 obj\Release\PackageTmp\bin\xxx.xml,未能找到文件
  17. 惠普HP dc7900的BIOS如何开启虚拟化VT设置
  18. 浅说Mathworks的算法开发解决方案和MBD
  19. html idv垂直居中,1.2.7 Excel表格打印技巧
  20. 段永平:大道无形我有型

热门文章

  1. selenium操作chrome时的一些配置
  2. GitLab CI/CD 因git凭据踩坑
  3. Spread表格组件For JAVA功能介绍—表格相关操作
  4. session图片验证码,页面和请求是两个地址。android手机好用,iphone 失效。
  5. 老板,年终奖我不要了,请给我一部华为Mate RS保时捷设计手机
  6. 《Adobe InDesign CS6中文版经典教程》—第2课2.9节应用对象样式
  7. lua 初接触 --- The first time use Lua for programing
  8. EXCEL中提取某行最后一个有效单元格数据
  9. windowsXPsp3怎样恢复桌面IE图标(非快捷方式)
  10. 网络OS显神威 认识Linux远程桌面控制