1、springboot + Java Mail + Html

项目结构:

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.lfy.cn</groupId><artifactId>springbootTest-1.0.0</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>springbootTest-1.0.0</name><url>http://maven.apache.org</url><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--springboot支持Java Mail的配置--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency></dependencies>
</project>

pod-scale-alarm.html

<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;">Confidential - Scale Alarm Use Only</div><div class="info-top" style="padding: 15px 25px;border-top-left-radius: 10px;border-top-right-radius: 10px;background: {0};color: #fff;overflow: hidden;line-height: 32px;"><img src="cid:icon-alarm" style="float: left; margin: 0 10px 0 0; width: 32px;" /><div style="color:#010e07"><strong>{5}</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: 160%; margin: 10px 0;">Hi,</p><p style=" list-style: 160%; margin: 10px 0;">{1}</p></div><div class="time" style="text-align: right; color: #999; padding: 0 15px 15px;">{2}</div><br><table class="list" style="width: 100%; border-collapse: collapse; border-top:1px solid #eee; font-size:12px;"><thead><tr style=" background: #fafafa; color: #333; border-bottom: 1px solid #eee;">{3}</tr></thead><tbody>{4}</tbody></table></div>
</div>
</body>

SendEmailController.java

package com.lfy.cn.springbootTest;import org.apache.commons.lang3.time.DateFormatUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.MessageFormat;
import java.util.Date;
import java.util.Objects;
import java.util.Properties;@RestController
public class SendEmailController {private static final Logger LOGGER = LoggerFactory.getLogger(SendEmailController.class);@RequestMapping("/SendEmailController/send")public String send(String[] args) throws MessagingException, IOException {JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();javaMailSender.setUsername("xxxxxxxxxx@163.com");  //代理邮箱javaMailSender.setPassword("授权码");javaMailSender.setHost("smtp.163.com");javaMailSender.setPort(25);javaMailSender.setDefaultEncoding("UTF-8");Properties props = new Properties();props.setProperty("mail.smtp.host", "smtp.163.com");props.setProperty("mail.transport.protocol", "smtp");props.setProperty("mail.smtp.auth", "true");   //SSL加密props.setProperty("mail.smtp.connectiontimeout", "20000");props.setProperty("mail.smtp.timeout", "20000");javaMailSender.setJavaMailProperties(props);MimeMessage message = javaMailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");helper.setTo(new String[]{"xxxxxxx@qq.com"});helper.setCc("xxxxxxxxx@163.com");helper.setFrom("xxxxxxxxx@163.com");helper.setSubject("Html邮件模板");helper.setText(buildContent(), true);String alarmIconName = "image.jpg";ClassPathResource img = new ClassPathResource(alarmIconName);if (Objects.nonNull(img)) {helper.addInline("icon-alarm", img);}        helper.addAttachment("image.jpg", new ClassPathResource("image.jpg"));//添加附件javaMailSender.send(message);return "send email.";}private static String buildContent() throws IOException {//加载邮件html模板String fileName = "pod-scale-alarm.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 (Exception e) {LOGGER.error("读取文件失败,fileName:{}", fileName, e);} finally {inputStream.close();fileReader.close();}String contentText = "以下是服务实例伸缩信息, 敬请查看.<br>below is the information of service instance scale, please check. ";//邮件表格headerString header = "<td>分区(Namespace)</td><td>服务(Service)</td><td>伸缩结果(Scale Result)</td><td>伸缩原因(Scale Reason)</td><td>当前实例数(Pod instance number)</td>";StringBuilder linesBuffer = new StringBuilder();linesBuffer.append("<tr><td>" + "myNamespace" + "</td><td>" + "myServiceName" + "</td><td>" + "myscaleResult" + "</td>" +"<td>" + "mReason" + "</td><td>" + "my4" + "</td></tr>");//绿色String emailHeadColor = "#10fa81";String date = DateFormatUtils.format(new Date(), "yyyy/MM/dd HH:mm:ss");//填充html模板中的五个参数String htmlText = MessageFormat.format(buffer.toString(), emailHeadColor, contentText, date, header, linesBuffer.toString(),"服务实例水平伸缩通知");//改变表格样式htmlText = htmlText.replaceAll("<td>", "<td style=\"padding:6px 10px; line-height: 150%;\">");htmlText = htmlText.replaceAll("<tr>", "<tr style=\"border-bottom: 1px solid #eee; color:#666;\">");return htmlText;}
}

App.java

package com.lfy.cn.springbootTest;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** Hello world!**/
@SpringBootApplication
public class App
{public static void main( String[] args ){SpringApplication.run(App.class,args);}
}

运行结果:

在App.java中以鼠标邮件启动springboot。

转载于:https://www.cnblogs.com/ZeroMZ/p/11478819.html

Java - Java Mail邮件开发(2)springboot +Java Mail + Html相关推荐

  1. java反射和注解开发(备java基础,javaee框架原理)-任亮-专题视频课程

    java反射和注解开发(备java基础,javaee框架原理)-5358人已学习 课程介绍         Java注解是附加在代码中的一些元信息,用于一些工具在编译.运行时进行解析和使用,起到说明. ...

  2. 张孝祥java邮件开发_张孝祥java邮件开发详解笔记(生成文本邮件)

    package zxx.createMessage; import java.io.FileOutputStream; import java.util.Date; import java.util. ...

  3. java 未读邮件_如何在java中阅读来自雅虎的未读电子邮件

    我想阅读从雅虎mail.so未读邮件,我使用下面的代码,但它给了我错误 如下 javax.mail.MessagingException: Connect failed; nested excepti ...

  4. Java 8 失宠!开发人员向 Java 11 转移...

    以下文章来源方志朋的博客,回复"666"获面试宝典 作者:白开水 来源:OSC开源社区(ID:oschina2013) 此前的 Java 社区报告曾指出,Java 8 仍是开发人员 ...

  5. java ug二次开发_使用Java进行UG二次开发:简单的例子(上) | 学步园

    最近因为要进行TeamCenter二次开发(胖客户端定制),所有要开始研究Java了.因此突发奇想为什么不能使用Java进行二次开发呢?现在对UG进行的开发以C/C++应用为主.大多数使用的是原来的U ...

  6. 微信信息回复 java,微信公众平台开发中使用Java如何实现一个消息回复功能

    微信公众平台开发中使用Java如何实现一个消息回复功能 发布时间:2020-11-17 16:11:11 来源:亿速云 阅读:82 作者:Leah 本篇文章给大家分享的是有关微信公众平台开发中使用Ja ...

  7. java游戏服务器的开发和维护,java游戏服务器开发

    java游戏服务器开发 内容精选 换一换 开发者基于Atlas 200 DK进行AI应用开发前,需要在制作SD卡时准备的Ubuntu服务器中部署开发环境,有以下两种场景:部署MindStudio,基于 ...

  8. android开发是java语言吗_android开发是用java语言吗?

    android开发的主流语言是java语言,但也可以使用其他语言,例可以通过Android NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程. Andro ...

  9. 实训9.2. JDK——java语言的软件开发工具包(JAVA的运行环境(JVM+Java系统类库)和JAVA工具) 【java开发的核心】...

    一.概念 JDK是 Java 语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序.JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工 ...

  10. jni java返回数组_Android开发实践:Java层与Jni层的数组传递

    Android开发中,经常会在Java代码与Jni层之间传递数组(byte[]),一个典型的应用是Java层把需要发送给客户端的数据流传递到Jni层,由Jni层的Socket代码发送出去,当然,Jni ...

最新文章

  1. asp.net mvc发送邮件
  2. python 获取10位和13位 时间戳
  3. 作者:徐优俊(1990-),男,北京大学前沿交叉学科研究院博士生。
  4. java中跳转页面的干法_java – 有没有一种干法来整合RowMappers的相同代码?
  5. html5自由者,排球自由人可以一直不下场吗?就是可不可以一直在后排轮换?
  6. Android 屏幕适配解决方案汇总
  7. java url转成pdf_java URL转PDF文件
  8. 怎样在Xcode 4下编译发布与提交App到AppStore?(转)
  9. 开课吧Java课堂:什么是主线程?如何去运用?
  10. CentOS 7 安装OpenOffice并实现WordToPDF(Java调用)
  11. 水水推荐学习PHP必备的函数集[zt]
  12. WCF技术剖析之四:基于IIS的WCF服务寄宿(Hosting)实现揭秘
  13. 【3月22日】2022年百度机器学习春实习笔试题解
  14. matlab节约里程法_基于节约里程法的物流配送路线优化
  15. 【转】你真的理解Python中MRO算法吗?
  16. 如何自制daplink_DAPLINK功能介绍
  17. Testing Types - 读书笔记
  18. 防火墙的双机热备技术(上下行接口连接二层设备)
  19. TP-Link ER系列路由器下挂路由器设置VLAN方法
  20. SpringBoot单元测试断言 assertions

热门文章

  1. idea配置java和maven_Maven配置,使用IntelliJ IDEA和Maven创建Java Web项目
  2. 中国FreeType联盟的几项工作
  3. i7-9700与E5 2667 V2空载功耗对比
  4. LINUX下载编译:segment.jar/net.loomchild.segment.srx.Srx2SaxParser
  5. VirtualBox虚拟机压缩减少体积
  6. No plugin found for prefix ‘doclint‘ in the current project
  7. 下载debian老版本的链接
  8. VS C++改变窗体背景色
  9. VS代码中明明有NO_BITMAP字串,提示找不到
  10. 想起一则急着争权的故事