1、我们需要登录邮箱开通邮箱授权码

2、然后需要pom需要引入spring-boot-starter-mail

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

需要在配置文件 application.properties里面添加

<!-- 邮箱验证 -->
#163邮箱
spring.mail.host=smtp.163.com
#这里配置你的邮箱
spring.mail.username=XXX@163.com
spring.mail.password=开启smtp时候的授权码
spring.mail.default-encoding=utf-8
spring.mail.port=465
spring.mail.protocol=smtps
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory

如果这里指定465端口,该端口和项目服务端口不冲突。邮件发送协议必须是smtps 不指定发送邮件时会报错,所以必须指定protocol配置为smtps

逻辑代码

上边pom的spring-boot-starter-mail引入后你能使用

JavaMailSender 是mail包提供的

package com.qiyuan.qyframe.base.service;import com.qiyuan.qyframe.base.common.BusiException;
import com.qiyuan.qyframe.base.util.RedisUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;import java.util.Random;@Slf4j
@Service
public class EmailService {@Value("${spring.mail.host}")private String host;@Value("${spring.mail.username}")private String username;@Value("${spring.mail.password}")private String password;@Autowiredprivate RedisUtil redisUtil;@Autowiredprivate JavaMailSender sender;public void sendEmailCode(String email) {if (StringUtils.isBlank(email)) {throw new BusiException("请输入正确的邮箱账号");}SimpleMailMessage message = new SimpleMailMessage();message.setFrom(username);message.setTo(email);message.setSubject("验证码");String verificationCode = String.valueOf(new Random().nextInt(899999) + 100000);//System.out.println(verificationCode);message.setText("尊敬的用户你好,你所收到的验证码: " + verificationCode);sender.send(message);//将验证码放入Redis中,并定时五分钟,五分钟后删除redisUtil.set(email, verificationCode, 5 * 60);}
}

然后你就可以在你的业务代码中调上边封装的EmailService了

 @AnonymousAccess@RequestMapping(value = "/emailCode", method = RequestMethod.POST)public ResponseData emailCode(String email) {String errMsg = "";try {emailService.sendEmailCode(email);} catch (BusiException e) {errMsg = e.getMessage();log.error("PhoneCodeController-emailCode occur BusiException", e);return ResponseDataUtil.buildSuccess(ResultEnums.ERROR.getCode(), errMsg);} catch (Exception e) {//异常信息errMsg = "系统错误";log.error("PhoneCodeController-emailCode occur Exception", e);return ResponseDataUtil.buildSuccess(ResultEnums.ERROR.getCode(), errMsg);}return ResponseDataUtil.buildSuccess(ResultEnums.SUCCESS.getCode(), "操作成功");}

流程大概就这些啦,应该没啥问题了,搞定

【邮箱验证码】springboot 使用邮箱服务发送验证码 ,在阿里云服务器端口的配置相关推荐

  1. SpringBoot 部署: 项目打包 手动部署到阿里云服务器上

    SpringBoot 部署: 项目打包 & 手动部署到阿里云服务器上 文章目录 SpringBoot 部署: 项目打包 & 手动部署到阿里云服务器上 前言 正文 1. 环境准备 &am ...

  2. 笔记:阿里云服务器下python 配置邮箱服务

    linux下发送邮件,我用的服务器是阿里云,向网易邮箱发邮件,因为阿里云ECS专有网络服务器禁用了25端口,所以改用了465 第一种方法: test1.py # coding:utf-8 import ...

  3. SpringBoot 文件管理微服务 支持FastDFS/FTP/阿里云存储、华为云存储/天翼云存储/联通云存储移动云存储

    本微服务实现了对文件上传.下载进行管理,分别支持FastDFS存储.FTP存储.天翼云存储.华为云存储(OBS).阿里云存储(OSS).移动云.可通过配置自动切换存储类型.本微服务支持临时文件24小时 ...

  4. 视频融合云服务EasyCVR平台部署在云服务器中的配置关键点

    AI智能安防视频平台EasyCVR视频融合云服务支持分发RTSP.RTMP.FLV.HLS.WebRTC等多种格式的视频流,可灵活运用于多场景需求中,可覆盖全平台(Linux.Windows.Andr ...

  5. 腾讯云短信服务发送验证码

    腾讯云短信服务发送验证码 1.前言 2.进入短信服务控制台 3.创建签名 4.创建模板 5.短信-应用管理-应用列表 6.创建密钥 7.SpringBoot实现短信验证码发送 7.1 引入依赖 7.2 ...

  6. 阿里云-----云通信短信服务---发送验证码到手机

    阿里什么都做啊,今天发现了短信服务,测试了一下,可用,简单方便,不需要太多时间便搞定了,文章最后有源码下载. 1.首先你需要有阿里云账号---然后开通短信服务,记得在阿里云账号充2元,不然发送不成功 ...

  7. Java 集成阿里大鱼平台短信服务发送验证码到手机

    点击前往:阿里大鱼 --- 短信接口调用错误码(错误原因及处理方式) 上一篇:阿里大鱼短信服务 --- 发送验证码.短信通知 下一篇:Java 集成阿里大鱼平台短信服务发送验证码 --- 补齐注册部分 ...

  8. 阿里云服务器发送邮箱失败问题

    问题描述: 在本地启动项目并发送邮箱完全木有问题,ok,上云,注册用户,一顿操作猛如虎,what?,邮箱验证码发送失败??,什么玩意?? 原因: 发邮件的默认端口是25端口,而阿里云禁止通过STMP ...

  9. 解决springboot项目部署到阿里云服务器邮箱无法发送邮件

    解决springboot项目部署到阿里云服务器邮箱无法发送邮件 前言:今天部署了一下springboot项目,使用的是docker部署的,如果有兴趣可以看我这篇文章: docker上部署前后端分离的s ...

最新文章

  1. CGContextSaveGState与CGContextRestoreGState的作用
  2. linux 内核 netfilter 网络过滤模块 (3)-NAT
  3. Android 中设置只是程序第一次运行才显示的界面
  4. 转帖:对linux中半增加半连接数量和防止服务器被dos***
  5. java控制硬件_厨师都开始用Python和Java了,现在C语言还值得我们学习吗?
  6. RHEL6.5 部署DNS服务器
  7. 火山安卓文件读写操作演示
  8. 涉密计算机检查专业软件,RG涉密信息自检查工具
  9. 阿里图标css的使用中的使用方法,iconfont阿里巴巴矢量图标库的正确使用方法
  10. 索尼相机手机控制对焦,操控指南丨 使用索尼微单的十个小技巧
  11. R语言在Ubuntu环境下添加times new roman字体
  12. 一个假猪套神器:NET CAT-NC
  13. uniapp抖音小程序发布激励广告
  14. 手把手教你搭建jME2(jMonkeyEngine2)环境【有图有真相】
  15. [京东实践干货]手把手教你实现「京喜工厂」的CSS动画效果
  16. numpy的文件存储 .npy .npz 文件
  17. 小米开发平台上架APP
  18. 苹果六电池_苹果官网上架新品,18999元起~
  19. 技术总监的校招之旅——分享校招全攻略指南(万字长文)
  20. 2014年全球手游市场发展的六大趋势

热门文章

  1. ## 学会使用Wireshark网络监听 设置代理服务器
  2. java switch enum对象_Java枚举类(enum)5种常见用法和3种内部方法,详细附代码
  3. mac 重置smc_如何(以及何时)在Mac上重置SMC
  4. easyExcel 填充模板生成新的excel
  5. 210811_152958-Gooey实战 | 几行代码转换Python程序为图形界面应用!
  6. 绝了,Gooey:一行代码将 Python 程序转换为图形界面应用
  7. Nginx安装fair模块
  8. HTML中设定下划线样式并且指定下划线长度
  9. 想认认真真的做好毕业设计的同学们可以进来看看(毕业设计中的文献查询与运用 )...
  10. 为什么那么多企业要做网络营销?它又有什么好处呢?