当前位置: 首页 > 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.mrgr.cn/news/42247.html

相关文章:

  • 酒店生态发展旅游四个一体化建设-—未来之窗行业应用跨平台架构
  • 状态码(204)的使用场景
  • OSDU轻量化单机部署
  • 【CKA】十一、Pod封装多个容器
  • 《C++音频降噪秘籍:让声音纯净如初》
  • std::set
  • vue 不是spa 单页面应用吗? 配置路由工作模式为history 后 ,为什么配置Nginx的 try_files 可以根据url 找到对应的文件?
  • 毕业设计选题:基于ssm+vue+uniapp的电子点餐系统小程序
  • 信息安全工程师(32)认证技术方法
  • 拉普拉斯频域滤波器与高斯高通滤波器等价
  • 信息安全工程师(31)认证类型与认证过程
  • 【社保通-注册安全分析报告-滑动验证加载不正常导致安全隐患】
  • vue-cli老项目继续优化:json压缩神器 compress-json
  • 【ShuQiHere】深入理解 LC-3 的输入输出机制(I/O Mechanism)
  • C 语言预处理详解:从宏替换到条件编译
  • SSY20241002提高组T4题解__纯数论
  • JavaScript 数组方法
  • esp32开发环境搭建和烧录测试
  • 鸿蒙 HarmonyNext 与 Flutter 的异同之处
  • Linux 6.11版本发布