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

SpringBoot整合QQ邮箱

        SpringBoot可以通过导入依赖的方式集成多种技术,这当然少不了我们常用的邮箱,现在本章演示SpringBoot整合QQ邮箱发送邮件....

下面按步骤进行:

1.获取QQ邮箱授权码

        1.1 登录QQ邮箱

        1.2 开启SMTP服务

找到下图中的SMTP服务区域,如果当前账号未开启的话自己手动开启。

        1.3 获取授权码

进入上图中的【管理服务】后:在【安全设置中生成授权码】,也可以直接点击【继续生成授权码】来生成...

2.导入依赖

自己新建一个SpringBoot项目,在pom.xml文件中导入依赖:

<!-- 邮件依赖 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId>
</dependency>

3.配置文件

 导入依赖后在配置文件中添加以下配置(本文章使用properties文件):

spring.mail.host=smtp.qq.com
spring.mail.port=587
# 用于发送验证码的qq邮箱
spring.mail.username=(此处换成自己的QQ邮箱地址)
# 邮箱授权码
spring.mail.password=(换成上面邮箱的授权码)
spring.mail.protocol=smtp
spring.mail.properties.mail.smtp.auth=true
# 使用587接口需要启用STARTTLS加密
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

4.发送邮件

此处只演示service层发送邮件代码。

@Service
public class MailServer {@Autowiredprivate JavaMailSender javaMailSender;//发送邮件方法public ResponseResult sendAuthCode(String emailAddress) throws MessagingException, UnsupportedEncodingException {MimeMessage mimeMailMessage = javaMailSender.createMimeMessage();MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMailMessage);String myEmail = "我的邮箱";String displayName = "发送邮箱时显示的名称";  //这个可以不选 String emailAddress = "目标邮箱地址";String subject = "邮件主题";   String text = "邮件内容";    mimeMessageHelper.setFrom(myEmail,displayName);mimeMessageHelper.setTo(emailAddress);mimeMessageHelper.setSubject(subject);mimeMessageHelper.setText(text);try {javaMailSender.send(mimeMailMessage);authCodeUtil.setAuthCodeIntoRedis(emailAddress,authCode);} catch (MailException e) {return "无法发送邮件";}return "发送成功";}}

可能遇见的问题

        在springboot整合QQ邮箱的过程中,可能回遇到 “连接超时”,这时检查配置文件中的邮箱地址、授权码,如果这两项没错的话可能是网络问题,我们可以在终端ping一下qq邮箱的邮件发送服务器看一下当前网络是否可以连接qq邮箱,如下图:

如果结果是“请求超时”的话建议换个网络再尝试。。。。

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

相关文章:

  • 低质量数据的多模态融合方法
  • 计算机毕业设计 基于Django的在线考试系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档
  • Shell脚本linux登录自动检查
  • Golang | Leetcode Golang题解之第450题删除二叉搜索树的节点
  • Linux 之 Linux应用编程概念、文件IO、标准IO
  • PDF处理技巧:Windows电脑如何选择合适的 PDF 编辑器
  • 【c++】初步了解类和对象2
  • Python库pandas之四
  • 网络攻防技术--第三次作业
  • 带隙基准Bandgap电路学习(一)
  • [前端][easyui]easyui select 默认值
  • 项目开发--大模型--个人问答知识库--chain控制
  • STM32—SPI通讯协议
  • Android 安装过程五 MSG_INSTALL消息的处理 安装
  • 大数据开发--1.3 Linux的常用命令大全
  • 使用PuTTY连接到Amazon Linux实例
  • Nexus搭建maven私有仓库
  • 留存率的定义与SQL实现
  • Java的锁机制详解
  • 用户登录与信息管理:实现小程序登录与用户信息存储
  • Java如何调用构造函数和方法以及使用
  • TFBoys谁最重
  • scp 通过中间机器进行远程拷贝
  • 探索 Python 高精度计算的奥秘:mpmath 库全解析
  • <<迷雾>> 第10章 用机器做一连串的加法(1)--使用两排开关分别给出被加数和加数 示例电路
  • Stable Diffusion最新版nowebui的api使用详解
  • 云服务器架构详解:X86计算_ARM_GPU/FPGA/ASIC_裸金属_超级计算集群
  • 高级java每日一道面试题-2024年10月4日-数据库篇-MySQL索引底层结构为什么使用B+树?
  • 【JVM】内存分析工具JConsole/Visual VM
  • 一静 、二平 、三忍 、四让、五淡