java中的接口是类吗
245
2022-09-05
springboot整合redis实现发送邮箱并验证
目录1.起步2.工具类邮箱工具类redis乱码解决3.controller搭建4.前端搭建结果总结
1.起步
pom文件
下面是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;
@Component
public 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
**/
@Configuration
public class Redisconfig {
@Bean(name="redisTemplate")
http:// public RedisTemplate
RedisTemplate
RedisSerializer
template.setConnectionFactory(factory);
//key序列化方式
template.setKeySerializer(redisSerializer);
//value序列化
templahttp://te.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
**/
@Controller
public class EmailController {
@Resource
private MailServiceUtils mailServiceUtils;
@Resource
private 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.前端搭建
接收方邮箱号
验证码
/**
* 发送验证码
*/
$("#yzm").click(function() {
$.ajax({
url : "/fasong",
type : "post",
data : {
"to":$("#to").val()
},
success : function(data) {
alert(data)
}
})
})
/**
* 验证码判断
*/
$("#y").click(function() {
$.ajax({
url: "/yz",
type: "post",
data: {
"to": $("#to").val(),
"yzm": $("#yz").val()
},
success: function (data) {
alert(data)
}
})
})
结果
总结
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~