如何使用springboot整合redis实现发送邮箱并验证
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要为大家展示了"如何使用springboot整合redis实现发送邮箱并验证",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何使用springb
千家信息网最后更新 2026年11月02日如何使用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安全错误
数据库的锁怎样保障安全
咖啡豆
互联网科技战争
互联网科技金融
为想互联网科技
远信互联网科技
互联网科技革命
深圳期待互联网科技
互联网科技大会
多迪互联网科技有限公司
衡水科技产业互联网平台
华脉科技工业互联网产品
互联网科技公司的市场部门
新华互联网科技2019
创业天下互联网科技有限公司
央行互联网金融科技公司
世界互联网科技公司市值排名
智腾互联网科技有限公司
上海京穆互联网科技有限公司
领航科技大厦互联网公司
互联网与数字科技关系
互联网科技股
互联网医疗科技
鑫亿盛互联网科技
深圳卡尔迅互联网科技有限公司怎么样
成都仁贤领冠互联网科技有限公司
互联网教育科技公司vipkid
互联网金融中的现代科技
中国互联网公司排名锤子科技
国产互联网科技公司
前海云享互联网科技