SpringBoot实现邮件发送

一.准备

引入starter

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

二.邮件发送需要的配置

因为各大邮件都有其对应安全系统,不是项目中想用就可以用的,我们必须要拿到其对应的客户端授权码才行,拿到授权码,在项目中配置SMTP服务协议以及主机 配置账户 ,就可以在项目中使用各大邮件运营商进行发送邮件了
以qq邮箱为例
登陆qq邮箱后,点击设置 选择 账户选项:
在这里插入图片描述向下拉选择开启POP3/SMTP 服务
在这里插入图片描述点击开启也会进入验证 验证成功后即可看到自己qq邮箱的客户端授权码了
在这里插入图片描述

三.YML配置

spring:
  mail:
    host: smtp.qq.com
    protocol: smtp
    default-encoding: UTF-8
    username: 2356781331@qq.com
    password: 这里写授权码
    test-connection: true
    properties:
      mail:
        smtp:
          auth: true
          starttls:
            enable: true
            required: true

四.发送邮件

@SpringBootTest
class MybatisplusApplicationTests {
 
    @Autowired
    private JavaMailSender mailSender;
 
    @Value("${spring.mail.username}")
    private String from;
 
    @Test
    void contextLoads() {
        SimpleMailMessage message = new SimpleMailMessage();
        //发送方
        message.setFrom(from);
        //接收方
        message.setTo(from);
        //标题
        message.setSubject("测试");
        //正文
        message.setText("hahahahh");
        mailSender.send(message);
    }
 
}

在这里插入图片描述

五.其他问题

注入JavaMailSender,但是报空指针异常,检查邮箱服务是否已经开启。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【晴问算法】入门篇—贪心算法—区间不相交问题

题目描述 给定n个开区间&#xff0c;从中选择尽可能多的开区间&#xff0c;使得这些开区间两两没有交集。 输入描述 输出描述 输出一个整数&#xff0c;表示最多选择的开区间个数。 样例1输入 4 1 3 2 4 3 5 6 7 输出 3 解释 最多选择(1,3)、(3,5)、(6,7)三个区间&#xff0c;它…

【IEDM2023】背势垒电荷运动诱导GaN HEMT随时间的非稳态击穿

分享一篇2023年IEDM上GaN HEMT&#xff08;高电子迁移率晶体管&#xff09;的研究论文&#xff0c;标题为“Charge Movement in Back Barrier Induced Time-Dependent On-State Breakdown of GaN HEMT”。论文讨论了在GaN HEMT中&#xff0c;由于背栅&#xff08;Back Barrier&…

【数据库】数据库基本知识

1.数据库的四个基本概念 1.1 数据&#xff1a;描述事务的符号记录 1.2 数据库&#xff1a;概括的说&#xff0c;数据库数据具有永久存储、有组织的、可共享的大量数据的集合&#xff0c;数据库中的数据按一定的数据模型组织、描述和储存&#xff0c;具有较小的冗余度、较高的…

ubuntu16.04上pycharm卡住关不了

在使用pycharm的过程中&#xff0c;突然卡住&#xff0c;黑屏&#xff0c;手动界面关闭失败&#xff0c;可尝试以下方法解决。 输入以下命令&#xff0c;查看所有和pycharm有关的进程 ps -ef | grep pycharm得到以下结果 根据相应的PID&#xff0c;输入以下命令&#xff0c;强…

Java基础入门day16

day16 回顾二分查找 思路&#xff1a; 对于一个已经排好序的数组&#xff0c;在该数组中查找指定的元素&#xff0c;将要查找的元素与排好序之后的数组中的中间数值进行比对 如果一致&#xff0c;则直接返回&#xff0c;一次性可以得到要查找元素的下标 如果要查找的元素比中间…

Perl下载器:一步步教你抓取Amazon网站数据

引言&#xff1a;掌握数据&#xff0c;掌握未来 在这个信息爆炸的时代&#xff0c;数据就是新石油。但如何有效地获取和利用这些数据呢&#xff1f;爬虫技术是关键。今天&#xff0c;我们将深入探讨如何使用Perl语言编写一个下载器&#xff0c;以Amazon网站为例&#xff0c;教…

.Net使用ElasticSearch

文章目录 前言主体内容一.Kibana中ElasticSearch的基础操作1.GET&#xff08;查询&#xff09;1.POST&#xff08;新增&#xff09;1.PUT&#xff08;修改&#xff09;1.DELET&#xff08;删除&#xff09; 二.在.Net中&#xff0c;对ElasticSearch进行基础操作1.DotNet连接Ela…

【爬虫逆向】Python逆向采集猫眼电影票房数据

进行数据抓包&#xff0c;因为这个网站有数据加密 !pip install jsonpathCollecting jsonpathDownloading jsonpath-0.82.2.tar.gz (10 kB)Preparing metadata (setup.py) ... done Building wheels for collected packages: jsonpathBuilding wheel for jsonpath (setup.py) .…

Acwing-基础算法课笔记之动态规划(区间DP)

Acwing-基础算法课笔记之动态规划&#xff08;区间DP&#xff09; 一、石子合并1、定义2、闫氏DP分析法3、模拟过程4、代码示例 一、石子合并 1、定义 设有 N N N堆石子排成一排&#xff0c;其编号为 1 1 1&#xff0c; 2 2 2&#xff0c; 3 3 3&#xff0c;…&#xff0c; N…

SAP前台处理:销售业务集成<VA03/VL03N/VLPOD/VF03) 02/02

接上一章节&#xff1a; 下方&#xff1a;按照行项目显示&#xff1a;物料信息、数量信息、地点信息&#xff08;工厂、移动类型、库位&#xff09;、批次信息、科目分配信息&#xff08;科目分配对象&#xff09; 点击FI凭证&#xff0c;跳转到成本结转凭证或发出商品凭证界…

微信小程序的页面制作---常用组件及其属性

微信小程序里的组件就是html里的标签&#xff0c;但其组件都自带UI风格和特定的功能效果 一、常用组件 view&#xff08;视图容器&#xff09;、text&#xff08;文本&#xff09;、button&#xff08;按钮&#xff09;、image&#xff08;图片&#xff09;、form&#xff08…

大数据 - Spark系列《十三》- spark调度流程(运行过程)

Spark系列文章&#xff1a; 大数据 - Spark系列《一》- 从Hadoop到Spark&#xff1a;大数据计算引擎的演进-CSDN博客 大数据 - Spark系列《二》- 关于Spark在Idea中的一些常用配置-CSDN博客 大数据 - Spark系列《三》- 加载各种数据源创建RDD-CSDN博客 大数据 - Spark系列《…

完美解决 RabbitMQ可视化界面Overview不显示折线图和队列不显示Messages

问题场景&#xff1a; 今天使用docker部署了一个RabbitMQ&#xff0c;浏览器打开15672可视化页面发送消息后不显示Overview中的折线图&#xff0c;还有队列中的Messages&#xff0c;因为我要看队列中的消息数量。 解决方案&#xff1a; 进入容器内部 docker exec -it 容器id…

走进Hyperledger Fabric:企业区块链技术的简明介绍

该文章Github地址&#xff1a;https://github.com/AntonyCheng/blockchain-notes 在此介绍一下作者开源的SpringBoot项目初始化模板&#xff08;Github仓库地址&#xff1a;https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址&#xff1a;https://…

GPT-SoVITS语音合成服务器部署(远程访问)

GPT-SoVITS 是一个开源项目&#xff0c;它使用大约一分钟的语音数据便可以训练出一个优秀的TTS模型。 项目的核心技术是 Zero-shot TTS 和 Few-shot TTS。 Zero-shot TTS 可以让用户输入5秒钟的语音样本并立即体验转换后的语音&#xff0c;而 Few-shot TTS 则可以通过使用仅一…

静默安装OGG21.3微服务版本FOR ORACLE版本

静默安装OGG21.3微服务版本FOR ORACLE版本 silent install ogg21.3 for oracle 某度找来找去都没有找到一份可靠的静默安装OGG21.3微服务版本的案例&#xff0c;特别难受&#xff0c;为此将自己静默安装的步骤一步步贴出来分享给大家&#xff0c;请指点&#xff0c;谢谢。 至…

【赠书第20期】AI绘画与修图实战:Photoshop+Firefly从入门到精通

文章目录 前言 1 入门篇&#xff1a;初识Photoshop与Firefly 2 进阶篇&#xff1a;掌握Photoshop与Firefly的核心技巧 3 实战篇&#xff1a;运用Photoshop与Firefly进行创作 4 精通篇&#xff1a;提升创作水平&#xff0c;拓展应用领域 5 结语 6 推荐图书 7 粉丝福利 前…

解决谷歌浏览器最新chrome94版本CORS跨域问题

项目场景&#xff1a; 谷歌浏览器升级到chrome94版本出现CORS跨域问题 问题描述 解决谷歌浏览器最新chrome94版本CORS跨域问题。 CORS跨域问题&#xff1a; 升级谷歌浏览器最新chrome94版本后&#xff0c;提示Access to XMLHttpRequest at ‘http://localhost:xxxx/api’ fro…

【机器学习系列】M3DM工业缺陷检测部署与训练

一.基础资料 1.Git 地址 地址 2.issues issues 3.参考 参考 csdn 二.服务器信息 1.GPU 服务器 GPU 服务器自带 CUDA 安装(前提是需要勾选上)CUDA 需要选择大于 11.3 的版本登录服务器后会自动安装 GPU 驱动 2.CUDA 安装 GPU 服务器自带 CUDA CUDA 版本查看 3.登录信…

安装Pinia 插件 pinia-plugin-persist 添加 persist 属性时报红线解决方法

1&#xff0c;使用全局状态管理pinia 添加persist包红线&#xff0c; 网上很多都没有得到实际的解决方法。 2&#xff0c;接下来给大家梳理一下正确的解决方法&#xff1b; 首先卸载pinia-plugin-persist pnpm uninstall pinia-plugin-persist 安装pinia-plugin-persistedsta…