springboot3——Email

maven导入包:

		<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId><version>2.1.6.RELEASE</version></dependency>

参数配置:

# MailProperties
spring.mail.host=smtp.sina.com
spring.mail.port=465
spring.mail.username=hebtu_ftz@sina.com
spring.mail.password=c33ce75afaff8015
spring.mail.protocol=smtps
spring.mail.properties.mail.smtp.ssl.enable=true
spring.mail.properties.mail.smtl.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

写发送工具类:

package com.now.community.community.util;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;@Component
public class MailClient {private static final Logger logger = LoggerFactory.getLogger(MailClient.class);@Autowiredprivate JavaMailSender mailSender;@Value("${spring.mail.username}")private String from;public void sendMail(String to, String subject, String content) {try {MimeMessage message = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(message);helper.setFrom(from);helper.setTo(to);helper.setSubject(subject);helper.setText(content, true);mailSender.send(helper.getMimeMessage());} catch (MessagingException e) {logger.error("发送邮件失败:" + e.getMessage());}}
}

测试类:

package com.now.community.community;import com.now.community.community.util.MailClient;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;@RunWith(SpringRunner.class)
@SpringBootTest
@ContextConfiguration(classes = CommunityApplication.class)
public class MailTests {@Autowiredprivate MailClient mailClient;@Autowiredprivate TemplateEngine templateEngine;@Testpublic void testTextMail(){mailClient.sendMail("450427951@qq.com","TEST","welcome");}@Testpublic void testHtmlMail(){Context context=new Context();context.setVariable("username","fantianzuo");String content=templateEngine.process("/mail/demo",context);System.out.println(content);mailClient.sendMail("450427951@qq.com","HTML",content);}
}

html:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>邮件示例</title>
</head>
<body>
<p>欢迎你, <span style="color:red;" th:text="${username}"></span>!</p>
</body>
</html>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python(22)--面向对象1-封装

python面向对象1面向过程/面向对象2面向对象核心概念-类3类的设计3.1类三要素-类名、属性、方法3.2面向对象基础语法3.2.1查看对象的常用方法3.2.2类定义3.2.3创建类对象3.2.4__init__()方法3.2.5 self参数3.2.6类内置方法和属性_del_()方法--销毁对象_str_()方法--定制化输出对…

机器学习问题总结(02)

文章目录1.stacking模型以及做模型融合的知识1.1 从提交结果中融合1.2 stacking1.3 blending2. 怎样去优化SVM算法模型的&#xff1f;2.1 SMO优化算法2.2 libsvm 和 Liblinear3.现有底层是tensorflow的keras框架&#xff0c;如果现在有一个tensorflow训练好的模型&#xff0c;k…

python对操作系统的目录和文件操作

一、获取当前目录下的特定文件列表>>>import glob,os>>>curdir os.getcwd() #获取当前目录>>>os.chdir(workdir) #设置当前目录>>>dir glob.glob(*.dat) #获取当前目录的dat文件列表>>>os.chdir(curdir) #…

常见漏洞

Cookie without HttpOnly flag set 如果在Cookie上设置了HttpOnly属性&#xff0c;则客户端JavaScript无法读取或设置Cookie的值。 这种措施通过阻止某些客户端攻击&#xff08;例如跨站点脚本&#xff09;&#xff0c;通过阻止它们通过注入的脚本来简单地捕获cookie的值&…

python函数星号参数

2011-09-01 17:35 2人阅读 评论(0) 收藏 编辑 删除 今天有个工作是导出一个函数给脚本用 我自已先要测一下 先要客户端发送一个消息给服务器 看了下C部分的代码,如下 "def onNetMessage(self,playerID, msgName,msgParam):\n" //客户端调用服务器脚本 " …

MachineLearning(3)-流型

流型-manifold在很多机器学习的文章中会见到“嵌入在高维空间的低维流型”这样的字眼&#xff0c;下记录一些重要概念。参考资料&#xff1a;https://blog.csdn.net/sinat_32043495/article/details/789977581.流型 局部具有欧几里得空间性质的空间&#xff08;流型就是一个空间…

C/C++常见面试题(四)

C/C面试题集合四 目录 1、什么是C中的类&#xff1f;如何定义和实例化一个类&#xff1f; 2、请解释C中的继承和多态性。 3、什么是虚函数&#xff1f;为什么在基类中使用虚函数&#xff1f; 4、解释封装、继承和多态的概念&#xff0c;并提供相应的代码示例 5、如何处理内…

机器学习问题总结(03)

文章目录1.struct和class区别&#xff0c;你更倾向用哪个2.kNN&#xff0c;朴素贝叶斯&#xff0c;SVM的优缺点&#xff0c;各种算法优缺点2.1 KNN算法2.2 朴素贝叶斯2.3SVM算法2.4 ANN算法2.5 DT算法3. 10亿个整数&#xff0c;1G内存&#xff0c;O(n)算法&#xff0c;统计只出…

python源代码现成重用大全

Nullege is a search engine for Python source code. http://nullege.com/

redis——新版复制

sync虽然解决了数据同步问题&#xff0c;但是在数据量比较大情况下&#xff0c;从库断线从来依然采用全量复制机制&#xff0c;无论是从数据恢复、宽带占用来说&#xff0c;sync所带来的问题还是很多的。于是redis从2.8开始&#xff0c;引入新的命令psync。 psync有两种模式&a…

Python(23)-面向对象2-继承,多态

面向对象基本概念2--继承、多态1.继承基本概念2.子类重写父类方法2.1完全重写2.2扩展父类方法--super()3.多继承4.新式类和旧式类5.多态基本概念6.类属性、类方法-classmethod6.1类属性6.2类方法classmethod7.静态方法staticmethod8.案例分析本系列博文来自学习《Python基础视频…

Linux Linux 集群

Linux 集群 Page navigation 什么是集群?集群分类基于 Linux 的集群Linux 服务器集群系统Linux 高性能计算集群集群系统 MOSIX构建 Linux 集群IBM 与 Linux 集群 本专题收集了 Linux 集群相关的文章和教程。 什么是集群? 简单的说&#xff0c;集群&#xff08;cluster&#x…

机器学习问题总结(04)

文章目录1、MLP的BP过程2、maxpool层BP怎么做的2.1 **mean pooling**2.2 max pooling3、opencv遍历像素的方式&#xff0c;讲两种&#xff1f;4、传统图像处理有了解过吗&#xff0c;比如去噪 特征提取5、问在linux下写过代码吗&#xff1f; 问用了什么软件工具6、LDA&#xff…

持续更新的Zookeeper知识总结

简介 Zookeeper为分布式应用 提供了高效且可靠的分布式协调服务&#xff0c;提供了诸如统一命名服务、发布订阅、负载均衡、配置管理和分布式锁等分布式的基础服务。 设计目标是将那些复杂且容易出错的分布式一致性服务封装起来&#xff0c;构成一个高效可靠的原语集&#xf…

Python(24)-面向对象3-可迭代类对象Pokemon

面向对象3-Pokemon demo1.可迭代类对象1.可迭代类对象 想要实现类对象中某些属性/数值的迭代访问&#xff0c;需要在类中定义一个__iter__()方法&#xff0c;和__next__() 的方法(python 2 中为next()方法)。 _iter_()返回值是self&#xff0c; _next_()中遍历完所有的元素后发…

机器学习问题总结(05)

文章目录1. Hadoop、Spark1.1 hadoop1.2 spark1.3 MapReduce1.3.1 概念1.3.1 MapReduce执行流程2、机器学习场景3、推荐系统&#xff08;预测电影等级&#xff09;4、CTR&#xff08;点击通过率 -> 广告&#xff09;5、SVM5.1 svm的原理5.2 SVM的核技巧6、K-means6.1 K-mean…

基于Socket的UDP和TCP编程介绍

一、概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议。 TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流,TCP套接口是字节流套接口(streamsocket)的一种。 UDP:用户数据报协议。U…

Python(25)-单例设计模式

单例设计模式1.单例设计模式2.__new__方法3.初始动作只执行一次本系列博文来自学习《Python基础视频教程》笔记整理&#xff0c;视屏教程连接地址&#xff1a;http://yun.itheima.com/course/273.html1.单例设计模式 设计模式&#xff1a;不同的问题使用不同的解决套路。学习设…

Linux Socket通信 C/S模型

代码片段(8) [代码] MySocket.h 01#ifndef _MYSOCKET_0623_H 02#define _MYSOCKET_0623_H 03 04#include <sys/socket.h> 05#include <sys/types.h> 06#include <arpa/inet.h> 07#include <netinet/in.h> 08#include <sys/wait.h> 09#include &…

Java多线程——基本概念

线程和多线程 程序&#xff1a;是一段静态的代码&#xff0c;是应用软件执行的蓝本 进程&#xff1a;是程序的一次动态执行过程&#xff0c;它对应了从代码加载、执行至执行完毕的一个完整过程&#xff0c;这个过程也是进程本身从产生、发展至消亡的过程 线程&#xff1a;是比…