如何使用springboot整合redis实现发送邮箱并验证
发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,这篇文章主要为大家展示了"如何使用springboot整合redis实现发送邮箱并验证",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何使用springb
千家信息网最后更新 2025年11月15日如何使用springboot整合redis实现发送邮箱并验证
这篇文章主要为大家展示了"如何使用springboot整合redis实现发送邮箱并验证",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何使用springboot整合redis实现发送邮箱并验证"这篇文章吧。
1.起步
pom文件
org.springframework.boot spring-boot-starter-redis 1.4.1.RELEASE org.springframework.boot spring-boot-starter-mail
下面是yml配置
#设置端口号server: port: 8080#配置数据源spring: mail: #QQ邮箱这不用改 host: smtp.qq.com #你的邮箱 username: XX@qq.com #你的授权码 password: XXXXXX default-encoding: UTF-8 redis: #redis服务器地址 host: XXXXXX #Redis服务器连接端口 port: 6379 #Redis服务器连接密码(默认为空) password: XXX jedis: pool: #连接池最大阻塞等待时间(使用负值表示没有限制) max-wait: 1000 #连接池最大连接数(使用负值表示没有限制) max-active: 100 #连接池中的最大空闲连接 max-idle: 20 #连接池中的最小空闲连接 min-idle: 0 #连接超时时间(毫秒) timeout: 30000
邮箱授权码不知道的话QQ邮箱开通一下

2.工具类
邮箱工具类
package com.example.demo.util;/** * @Classname MailServiceUtils * @Description TODO * @Author 86176 * @Date 2021-12-17 15:04 * @Version 1.0 **/import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.mail.MailException;import org.springframework.mail.SimpleMailMessage;import org.springframework.mail.javamail.JavaMailSender;import org.springframework.stereotype.Component;@Componentpublic class MailServiceUtils{ private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired private JavaMailSender mailSender; /** * @param from 发送人 * @param to 接收人 * @param subject 主题 * @param content 内容 */ public void sendMail(String from,String to, String subject, String content){ SimpleMailMessage message = new SimpleMailMessage(); message.setFrom(from); message.setTo(to); message.setSubject(subject); message.setText(content); try { mailSender.send(message); logger.info("邮件成功发送!"); } catch (MailException e) { logger.error("发送邮件错误:",e); } }}redis乱码解决
package com.example.demo.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.redis.connection.RedisConnectionFactory;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.serializer.RedisSerializer;import org.springframework.data.redis.serializer.StringRedisSerializer;/** * @Classname Redisconfig * @Description TODO * @Author 86176 * @Date 2021-12-06 10:02 * @Version 1.0 **/@Configurationpublic class Redisconfig { @Bean(name="redisTemplate") public RedisTemplate redisTemplate(RedisConnectionFactory factory) { RedisTemplate template = new RedisTemplate<>(); RedisSerializer redisSerializer = new StringRedisSerializer(); template.setConnectionFactory(factory); //key序列化方式 template.setKeySerializer(redisSerializer); //value序列化 template.setValueSerializer(redisSerializer); //value hashmap序列化 template.setHashValueSerializer(redisSerializer); //key haspmap序列化 template.setHashKeySerializer(redisSerializer); // return template; }} 3.controller搭建
按要求更改
package com.example.demo.controller;import com.example.demo.util.MailServiceUtils;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.scheduling.annotation.Async;import org.springframework.stereotype.Controller;import org.springframework.util.Assert;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import javax.annotation.Resource;/** * @Classname EmailController * @Description TODO 邮箱发送 * @Author 86176 * @Date 2021-12-17 15:28 * @Version 1.0 **/@Controllerpublic class EmailController { @Resource private MailServiceUtils mailServiceUtils; @Resource private RedisTemplate redisTemplate; /** * 发送验证码 redis存储验证码 * @param to 被发送的邮箱账号 * @return */ @PostMapping("/fasong") @ResponseBody public String email(String to) { try { //生成6位随机数 String i = String.valueOf((int) ((Math.random() * 9 + 1) * 100000)); //发送邮箱 mailServiceUtils.sendMail("XXXXXX@qq.com", to, "验证码", i); //redis保存验证码 redisTemplate.opsForValue().set(to, i); } catch (Exception e) { return "报错"; } return "OK"; } /** * 邮箱验证 * @param to 被发送的邮箱账号 * @param yzm 输入的验证码判断 * @return */ @PostMapping("/yz") @ResponseBody public String yz(String to, String yzm) { //根据邮箱帐号取出验证码 String o = (String) redisTemplate.opsForValue().get(to); if (o.equals(yzm)){ return "OK"; } return "No"; } @RequestMapping("/abc") public String abc() { return "QQemail"; }} 4.前端搭建
Title 接收方邮箱号 验证码
结果

以上是"如何使用springboot整合redis实现发送邮箱并验证"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
邮箱
验证
内容
序列
整合
最大
服务器
篇文章
服务
工具
时间
空闲
负值
账号
邮件
学习
帮助
配置
限制
最小
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
比亚迪网络技术专员
网上教学网络技术发展
管理代理服务器设置在哪里
博兴管理软件开发公司
网络安全培训ppt课件免费
数据库如何添加约束条件
商务互联网科技背景视频素材
黄浦区正规网络技术转让材料
pycharm数据库结构在哪
网络安全广告怎么消除
国家对软件开发的政策支持
网络安全为人民靠人民小报
太虚幻境服务器联赛名单
办公软件开发用什么软件
中山码尚网络技术有限公司网
sql数据库如何查询教师编号
创建商家数据库
2020网络安全宣传周H5
最便宜的服务器
闵行区工业软件开发案例
软件开发工程师考试多少分通过
提高微信网络安全
管理代理服务器设置在哪里
服务器 简单文件管理
开网络技术培训班
小贷软件开发商
办公软件开发用什么软件
2021年1月网络安全
互联网技术科技有限公司
学校查重用什么数据库