Springboot实现qq邮件的发送

一、打开必要的邮件设置

首先登录qq邮箱官网登录之后,在设置中将传输协议给打开,我们需要用这个秘钥作为发件人的邮箱授权。

在这里插入图片描述
在这里插入图片描述
这里开启之后,记住这个秘钥。

二、代码编写

首先我们将作为发送邮件的账户信息写入配置文件。

spring:mail:host: smtp.qq.comusername: qq邮箱地址password: 上面我们拿到的秘钥port: 465protocol: smtpdefault-encoding: utf-8properties:mail:smtp:auth: truestarttls:enable: truerequired: truessl:enable: truesocketFactory:port: 465class: javax.net.ssl.SSLSocketFactory

我们可以看一下这个官方提供的简易说明:

在这里插入图片描述

下面写在项目中。我这里直接在新增数据之后,然后直接调用发邮件的方法,所以无需单独的接口进行触发。


@Overridepublic void afterAdd(QuestionInfo questionInfo) {if (questionInfo.getWorkPerson() != null) {questionInfo.setContainWay("描述/责任人/日期\n确认");questionInfo.setCauseAnalysis("产生原因: \n流出原因: \n验证结果:");}SimpleMailMessage mailMessage = new SimpleMailMessage();String recipientEmail = "这是接收方qq邮件的地址,可以直接从用户资料中进行获取填写。";mailMessage.setFrom("这个是发送方的邮件地址,直接从配置文件中进行获取");//这是收件人mailMessage.setTo(recipientEmail);mailMessage.setSubject("这是文件的标题");//这是邮件的正文内容mailMessage.setText(questionInfo.getDescription());javaMailSender.send(mailMessage);DataProxy.super.afterAdd(questionInfo);}

在这里插入图片描述
在这里插入图片描述

收件人:
在这里插入图片描述

三、遇到的小问题

刚开始的时候,要么报错端口被占用,要么就报错连接被拒绝。然后跟着邮件给的一些格式,调整了一下配置文件内容,然后就可以了。

最后还有一个就是在代码中还需要指定发送方,否则会报错。

501 mail from address must be same as authorization user

在代码里面指定一下发送方就行了

mailMessage.setFrom("这个是发送方的邮件地址,直接从配置文件中进行获取");

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

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

相关文章

windows server 下的mysql 8.0.28修改数据库目录

1. 查看当前数据库存储位置 show global variables like %datadir%; 默认是:C:\ProgramData\MySQL\MySQL Server 8.0\Data 2. 修改 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini配置文件。如下: datadirD:/ProgramData/MySQL/MySQL Server 8.0/Dat…

小兴教你做平衡小车-JGB37-520电机介绍

文章目录 1 前言2 分析电机安装板3 介绍电机驱动板3.1 电机驱动板原理图3.2 电机驱动板PCB图3.2 电机驱动板3D效果图 1 前言 为了更好的对JGB37-520这款电机有个了解,这里直接上图应该会清晰些。这款电机带有霍尔编码器,方便对车轮的转速进行采集。咱们…

vulnhub-----pWnOS1.0靶机

文章目录 1.信息收集2.漏洞测试3.爆破hash4.提权 首先拿到一台靶机,就需要知道靶机的各种信息(IP地址,开放端口,有哪些目录,什么框架,cms是什么,网页有什么常见的漏洞,如sql注入&…

第2讲-Memory(3)主存

主存储器 多模块存储器

数据库系统概论-第16章 数据仓库与联机分析处理技术

概念性的介绍,一略而过,不重要。 16.1 数据仓库技术 16.2 联机分析处理技术 16.3 数据挖掘技术 16.4 大数据时代的新型数据仓库 16.5 小结

3d画线生成模型之后最大化找不到---模大狮模型网

当你在3D建模软件中画线生成模型后,如果最大化找不到该模型,可能是因为以下几种情况导致: 模型位置偏移: 可能你在绘制线条时,将模型画在了视图界面之外,导致最大化时无法看到。尝试平移或旋转模型&#x…

vue3中如何实现多个侦听器(watch)

<body> <div id"app"><input type"button" value"更改名字" click"change"> </div> <script src"vue.js"></script> <script>new Vue({el: #app,data: {food: {id: 1,name: 冰激…

MySQL中行锁、表锁、悲观锁、乐观锁和共享锁

在操作数据库的时候&#xff0c;可能会由于并发问题而引起的数据的不一致性&#xff08;数据冲突&#xff09;&#xff0c;如何保证数据并发访问的一致性、有效性&#xff0c;是所有数据库必须解决的一个问题&#xff0c;锁的冲突也是影响数据库并发访问性能的一个重要因素&…

大模型开发框架langchain系列教程

LangChain 是一种框架&#xff0c;借助 LangChain&#xff0c;与大语言模型的交互变得更加便捷。 LangChain 提供的接口和功能有助于将 LLM 的强大能力轻松集成到你的工作应用程序中。 我做了一个langchain的教程系列&#xff0c;详情请看&#xff1a; 大模型应用框架LangChai…

透视未来工厂:山海鲸可视化打造数字孪生新篇章

在信息化浪潮的推动下&#xff0c;数字孪生工厂项目正成为工业制造领域的新宠。作为一名山海鲸可视化的资深用户&#xff0c;我深感其强大的数据可视化能力和数字孪生技术在工厂管理中的应用价值&#xff0c;同时我们公司之前也和山海鲸可视化合作制作了一个智慧工厂项目&#…

Matlab与高光谱遥感:环境监测的新时代

光谱和图像是人们观察世界的两种方式&#xff0c;高光谱遥感通过“图谱合一”的技术创新将两者结合起来&#xff0c;大大提高了人们对客观世界的认知能力&#xff0c;本来在宽波段遥感中不可探测的物质&#xff0c;在高光谱遥感中能被探测。以高光谱遥感为核心&#xff0c;构建…

Python实战:日志记录与调试技巧

一、引言 在软件开发过程中&#xff0c;日志记录和调试是确保代码质量和效率的关键。日志记录可以帮助我们记录和分析程序的运行情况&#xff0c;而调试则是找出和修复程序中的错误。Python作为一种广泛使用的编程语言&#xff0c;提供了丰富的日志记录和调试工具。本文将详细…

“postinstall“: “patch-package“ 修补安装包补丁

在 package.json 文件里&#xff0c;postinstall 是一个钩子脚本&#xff0c;它在每次运行 npm install 命令后自动执行。当你在该字段中指定 "patch-package" 时&#xff0c;意思是在 npm install 安装所有依赖包之后&#xff0c;自动运行 patch-package 命令。 pa…

【Python模块】

Python模块是一个包含Python定义和语句的文件。 模块可以定义函数、类和变量。 模块也可以包含可执行的代码。一个模块就是一个包含Python代码的文件&#xff0c;文件后缀是.py。模块可以被其他程序引入&#xff08;import&#xff09;&#xff0c;以使用该模块中的函数等功能…

【JAVA】Springboot集成Proguard完成jar包混淆

目录 一、需求背景 二、具体实现 一、需求背景 某些情况下需要将jar包交付给第三方&#xff0c;担心第三方会将代码进行反编译&#xff0c;故需要将jar包进行处理。 jar包源码混淆工具有多种&#xff0c;但真正能投入使用的产品并不多。 比如 ClassFinal (ClassFinal: Jav…

三星工厂突发大火···  | 百能云芯

据韩媒报道&#xff0c;三星SDI位于韩国京畿道龙仁市基兴区的器兴工厂发生火灾。火灾发生在当地时间周四下午15:37左右&#xff0c;持续约20分钟后被扑灭。 幸运的是&#xff0c;此次火灾并未造成人员伤亡&#xff0c;但火场附近的一些帐篷已经被烧毁。消防部门目前正在调查火灾…

Windows 11 安装 WSL2

一、 概述 之前公司的服务器版本一直是ubuntu 16.04&#xff0c;然后再拉取新项目代码时编译报错找不到GLIBCXX_3.4.22 查看版本&#xff1a;strings /usr/lib/x86_64-linux-gnu/libstdc.so.6 | grep GLIBC ubuntu 16.04版本太低&#xff0c;更换20.04版本&#xff0c;所以就…

【JDBC编程】Java连接MySQL的五个步骤

目录 JDBC编程 1.JDBC的使用 2.数据库连接Connection 3.Statement对象 4.ResultSet对象 JDBC编程 JDBC编程运用了MySQL提供的 Java 的驱动包 mysql-connector-java &#xff0c;需要基于 Java 操作 MySQL 即需要该驱动包。同样的&#xff0c; 要基于 Java 操作 Oracle 数据库…

5.1.7.1、【AI技术新纪元:Spring AI解码】Mistral AI函数调用

Mistral AI函数调用 Mistral AI允许您用Java自定义函数注册到MistralAiChatClient,并由Mistral AI模型智能选择输出一个包含调用一个或多个注册函数的参数的JSON对象。这允许您将LLM功能与外部工具和API连接。mistral_small_latest和mistral_large_latest模型经过训练,能够检…

demo版多人聊天系统

目录 ​编辑 一&#xff0c;引入 二&#xff0c;在Server端修改的代码 1&#xff0c;保存用户信息功能实现 2&#xff0c;拼接消息 3&#xff0c;广播消息 三&#xff0c; Client端要修改的代码 四&#xff0c;效果演示 一&#xff0c;引入 在上一篇文章udp网络服务器中&a…