当前位置: 首页 > news >正文

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);}

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

http://www.lryc.cn/news/7188.html

相关文章:

  • FortiTalk | “三英论安全”之OT安全热门话题解读
  • 前端开发:关于diff算法详解
  • 如何为报表开发工具 FastReport .NET 设置 Apache 2 Web 服务器?
  • 华为OD机试真题JAVA实现【出租车计费】真题+解题思路+代码(20222023)
  • MySQL 查看版本的 5 种方法
  • 【软件测试】稳定性测试怎么做,这篇文章彻底讲透了~
  • Leetcode:198. 打家劫舍、213. 打家劫舍 II、337. 打家劫舍 III(C++)
  • 【每日随笔】手指训练 ( 手指训练作用 | 哪些人需要手指训练 | 手指操 | 手指康复训练器材 )
  • ATR指标在外汇交易中的另类运用方法
  • SQL Server 数据批量导出处理
  • 虹科分享 | CANopen协议基础知识——LSS服务
  • JS混淆和解混淆
  • MySQL-数值函数
  • SpringMVC(1)
  • 珠海先达MES系统六大功能解决电子组装行业可视化问题
  • 获取本机的IP地址,看似简单的获取,实则蕴含非常多的操作
  • 【SSM】篇一:初试Spring--Ioc与Bean
  • 华为OD机试真题Python实现【出租车计费】真题+解题思路+代码(20222023)
  • Elasticsearch:如何修改 nested 字段的值
  • 【JAVA】jdk8 Stream 排序精通
  • python的opencv操作记录12——Canny算子使用
  • Spark on hive Hive on spark
  • 【MySQL】子查询
  • Day889.MySQL高可用 -MySQL实战
  • 剑指 Offer 24. 反转链表
  • “黑铁时代”,地产人如何以客户视角加速房企数字化转型
  • 零入门kubernetes网络实战-14->基于veth pair、namespace以及路由技术,实现跨主机命名空间之间的通信测试案例
  • 【pytorch框架】对模型知识的基本了解
  • SUP桨板电动气泵方案——鼎盛合方案
  • 小白系列Vite-Vue3-TypeScript:011-登录界面搭建及动态路由配置