Spring Boot邮件发送(powernode CD2207)(内含教训视频+源代码)
Spring Boot邮件发送(powernode CD2207)(内含教训视频+源代码)
教学视频+源代码下载链接地址:
https://download.csdn.net/download/weixin_46411355/87452056
目录
- Spring Boot邮件发送(powernode CD2207)(内含教训视频+源代码)
- `教学视频+源代码下载链接地址:`[https://download.csdn.net/download/weixin_46411355/87452056](https://download.csdn.net/download/weixin_46411355/87452056)
- 一、注册并登录163邮箱
- 二、概述
- 三、案例实操
- 3.1 创建一个springboot项目
- 3.2 application.yml配置文件
- 3.3 发送普通内容的邮件
- 3.4 发送复杂内容的邮件
一、注册并登录163邮箱
注册163邮箱
登录163邮箱
点击继续开启
手机微信扫描二维码发送短信
点击开启
手机微信扫描二维码发送短信
点击“确定”
我们使用java程序发送邮件,属于使用第三方客户端发送邮件
使用第三方客户端发送右键也需要先通过认证(登录):
官方客户端认证: 用户名 密码
第三方客户端的认证:用户名 授权码
授权码需要通过发送短信开通指定功能时获取
二、概述
SpringBoot实现邮件功能是非常的方便快捷的,因为SpringBoot默认有starter实现了Mail。
发送邮件应该是网站的必备功能之一,什么注册验证,忘记密码或者是给用户发送营销信息。
最早期的时候我们会使用JavaMail
相关api来写发送邮件的相关代码,后来spring推出了JavaMailSender
更加简化了邮件发送的过程,在之后springboot对此进行了封装就有了现在的spring-boot-starter-mail
。
三、案例实操
3.1 创建一个springboot项目
这里“输入输出”勾选“Java Mail Sender”
3.2 application.yml配置文件
spring:# 设置连接邮箱的相关信息mail:host: smtp.163.comusername: fbihackerharryhao@163.compassword: IFLOJXMWEFJTXBYI # 使用授权码
3.3 发送普通内容的邮件
测试类
package com.bjpowernode.springbootmailsending;import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;@SpringBootTest
class SpringbootMailsendingApplicationTests {//注入发送邮件的工具对象@Autowiredprivate JavaMailSender javaMailSender;/*** 发送普通内容的邮件*/@Testvoid contextLoads() {//1.创建邮件对象SimpleMailMessage simpleMailMessage = new SimpleMailMessage();//2.设置邮件的相关信息simpleMailMessage.setFrom("fbihackerharryhao@163.com");//设置邮件的发出方simpleMailMessage.setTo("3541434135@qq.com");//设置邮件的接收方simpleMailMessage.setSubject("这是一封测试邮件");//设置邮件的标题simpleMailMessage.setText("这是邮件的内容");//设置邮件的内容//3.使用工具将邮件对象发出javaMailSender.send(simpleMailMessage);}}
3.4 发送复杂内容的邮件
测试类
/*** 发送复杂内容的邮件*/@Testpublic void test2() throws MessagingException {//1.创建邮件对象MimeMessage mimeMailMessage = javaMailSender.createMimeMessage();//2.创建邮件的工具来设置邮件的相关属性/*源码:public MimeMessageHelper(MimeMessage mimeMessage, boolean multipart, @Nullable String encoding)throws MessagingException {this(mimeMessage, (multipart ? MULTIPART_MODE_MIXED_RELATED : MULTIPART_MODE_NO), encoding);}参数分析new MimeMessageHelper(mimeMailMessage, true, "utf-8");第一个参数MimeMessage mimeMessage是邮件对象MimeMessage第二个参数boolean multipart是文件是否有多个部分(文本内容、图片等)第三个参数@Nullable String encoding是编码格式,指定了不能为空,必须要设置它。*/MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMailMessage, true, "utf-8");//3.使用该工具 设置发送的邮件的相关属性mimeMessageHelper.setFrom("fbihackerharryhao@163.com");mimeMessageHelper.setTo("3541434135@qq.com");mimeMessageHelper.setSubject("这是一封测试用户的复杂文件");mimeMessageHelper.setText("<h1>这是复杂邮件的文本内容</h1>");/*源码public void addInline(String contentId, File file) throws MessagingException {Assert.notNull(file, "File must not be null");FileDataSource dataSource = new FileDataSource(file);dataSource.setFileTypeMap(getFileTypeMap());addInline(contentId, dataSource);}*///在邮件内容中嵌入指定的图片mimeMessageHelper.addInline("picture",new File("D:\\operation\\hacker.jpg"));//为邮件添加附件/* 源码:public void addAttachment(String attachmentFilename, File file) throws MessagingException {第一个参数 String attachmentFilename附件的名称第二个参数 File file 附件具体的文件*/mimeMessageHelper.addAttachment("附件.txt",new File("D:\\operation\\attachment.txt"));//4.将邮件发出javaMailSender.send(mimeMailMessage);}
相关文章:

Spring Boot邮件发送(powernode CD2207)(内含教训视频+源代码)
Spring Boot邮件发送(powernode CD2207)(内含教训视频源代码) 教学视频源代码下载链接地址:https://download.csdn.net/download/weixin_46411355/87452056 目录Spring Boot邮件发送(powernode CD2207&…...

FortiTalk | “三英论安全”之OT安全热门话题解读
OT安全热门话题解读 在数字化转型时代,OT/IT融合已经成为主旋律,可能很多人还没有意识到“工厂”已经不是以前的“工厂”。从封闭走向互联、从现场走向远程、从手动走向自动,这种变革带来的不仅是便捷和效率,更潜藏着巨大的网络安…...

前端开发:关于diff算法详解
前言 前端开发中,关于JS原生的内容和前端算法相关的内容一直都是前端工作中的核心,不管是在实际的前端业务开发还是前端求职面试,都是非常重要且必备的内容。那么本篇博文来分享一个关于前端开发中必备内容:diff算法,d…...

如何为报表开发工具 FastReport .NET 设置 Apache 2 Web 服务器?
FastReport .NET是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案,使用FastReport .NET可以创建独立于应用程序的.NET报表,同时FastReport .Net支持中文、英语等14种语言,可以让你的产品保证真正的国际性。专业版和企业版包括Fast…...
华为OD机试真题JAVA实现【出租车计费】真题+解题思路+代码(20222023)
🔥系列专栏 华为OD机试(JAVA)真题目录汇总华为OD机试(Python)真题目录汇总华为OD机试(C++)真题目录汇总华为OD机试(JavaScript)真题目录汇总文章目录 🔥系列专栏题目输入输出示例一输入输出说明示例二输入输出说明...
MySQL 查看版本的 5 种方法
MySQL 提供了几种用于查看服务器版本的方法,本文给大家做个简单的介绍。 方法一:登录 MySQL 每次通过 mysql 客户端连接服务器之后,都会显示一个欢迎信息,里面包含了服务器的版本: mysql -uroot Enter password: **…...

【软件测试】稳定性测试怎么做,这篇文章彻底讲透了~
稳定性对产品的重要性不言而喻。 而作为质量保障,在稳定性测试方面的探索也在不断演化。记得两年前我们做稳定性测试还是基于恒定的压力,7*24小时长时间运行,关注的指标无非是吞吐量TPS的抖动、响应时间的变化趋势,以及各种资源是…...

Leetcode:198. 打家劫舍、213. 打家劫舍 II、337. 打家劫舍 III(C++)
目录 198. 打家劫舍 问题描述: 实现代码与解析: 动态规划(版本一): 原理思路: 动态规划(版本二): 原理思路: 213. 打家劫舍 II 问题描述:…...

【每日随笔】手指训练 ( 手指训练作用 | 哪些人需要手指训练 | 手指操 | 手指康复训练器材 )
文章目录一、手指训练作用二、哪些人需要手指训练三、手指操四、手指康复训练器材产品需求探索 , 研究下手指训练的市场 , 前景 , 是否可以开发 ; 一、手指训练作用 手指训练作用 : 改善 上肢协调性手眼 协调性训练提高 手指 抓握 能力提高 手指 灵活性提高 上肢运动 准确性 和…...

ATR指标在外汇交易中的另类运用方法
当涉及到外汇交易时,有许多不同的指标可以使用。然而,ATR指标可能是一个被低估的工具,可以帮助您发现有利可图的交易机会。本文将介绍ATR指标是什么,如何使用它来识别价格波动和制定交易策略,以及如何在外汇市场中另辟…...

SQL Server 数据批量导出处理
在实际项目环境中,有时会遇到需要将大量数据(这里所指百万级别以上的数据量)从一台服务器迁移到另外一台数据库服务器的情况。SQL Server有很多方式可以进行数据迁移:备份还原、导入/导出数据、生成脚本(包含数据&…...

虹科分享 | CANopen协议基础知识——LSS服务
CANopen是一种架构在CAN串行总线系统上的高层通讯协议,常被用于嵌入式系统与工业控制领域,包括电机控制、机器人制造、医疗、汽车等多个行业领域。本篇文章将主要介绍CANopen的LSS服务。 一. LSS概述 Layer setting service (LSS)是CANopen的设置服务与…...
JS混淆和解混淆
在今天的数字时代,知识产权和商业机密对于企业的成功非常重要。JavaScript代码可以包含许多敏感信息,例如商业逻辑、客户数据和加密密钥。为了保护这些重要信息,JavaScript混淆和解混淆已经成为一种必要的技术。 什么是JavaScript混淆&#…...
MySQL-数值函数
绝对值函数语法格式:ABS(X)例:查看三个数值的绝对值(负的绝对值为它的正整数,0的绝对值为0,正的绝对值为它本身)。mysql> select abs(2),abs(-32),abs(-0.5); ----------------------------- | abs(2) |…...

SpringMVC(1)
Web项目:基于HTTP协议,当一个用户从浏览器上面输入URL地址之后,URL能够和我们的程序映射起来,可以让用户的请求触达到后端程序里面,并且根据程序的处理,把结果返回浏览器; Spring MVC要进行学习的内容: 1)连…...
珠海先达MES系统六大功能解决电子组装行业可视化问题
电子组装行业的发展背景: 在日益激烈的市场环境中,降低成本,加快交付周期,提高产品质量已经成为了制造业发展的重要目标。企业关注的是产品的生产周期,客户关注的是产品的质量。如何在企业和消费者达成平衡,…...

获取本机的IP地址,看似简单的获取,实则蕴含非常多的操作
这篇文章讲述了PowerJob获取本地IP离奇曲折的经过,以及开放了诸多的可配置参数,打开了我新世界的大窗户。求个关注,求个点赞,求一个评论。 获取地址的操作,本来不应该作为什么重点,但是因为一点小小的意外&…...

【SSM】篇一:初试Spring--Ioc与Bean
文章目录1、Spring2、SpringFramework系统架构3、BeanBean的配置Bean的实例化Bean的生命周期4、依赖注入DIsetter注入和构造器注入依赖自动装配5、集合注入1、Spring Spring地址:https://spring.io Spring技术的优点: Spring家族(Spring全家…...
华为OD机试真题Python实现【出租车计费】真题+解题思路+代码(20222023)
🔥系列专栏 华为OD机试(Python)真题目录汇总华为OD机试(JAVA)真题目录汇总华为OD机试(C++)真题目录汇总华为OD机试(JavaScript)真题目录汇总文章目录 🔥系列专栏题目输入输出示例一输入输出说明示例二输入输出说明...
Elasticsearch:如何修改 nested 字段的值
Nested 类型是 object 数据类型的特殊版本,它允许对象数组以一种可以彼此独立查询的方式进行索引。在内部,嵌套对象将数组中的每个对象索引为单独的隐藏文档,这意味着每个嵌套对象都可以使用 nested query 独立于其他对象进行查询。每个 nest…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...

SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...
jmeter聚合报告中参数详解
sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...
离线语音识别方案分析
随着人工智能技术的不断发展,语音识别技术也得到了广泛的应用,从智能家居到车载系统,语音识别正在改变我们与设备的交互方式。尤其是离线语音识别,由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力,广…...
基于鸿蒙(HarmonyOS5)的打车小程序
1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...

企业大模型服务合规指南:深度解析备案与登记制度
伴随AI技术的爆炸式发展,尤其是大模型(LLM)在各行各业的深度应用和整合,企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者,还是积极拥抱AI转型的传统企业,在面向公众…...