广告
返回顶部
首页 > 资讯 > 后端开发 > Python >springboot整合redis实现发送邮箱并验证
  • 106
分享到

springboot整合redis实现发送邮箱并验证

2024-04-02 19:04:59 106人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录1.起步2.工具类邮箱工具类Redis乱码解决3.controller搭建4.前端搭建结果总结1.起步 pom文件 <!--集成redis-->

1.起步

pom文件

  <!--集成redis-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-redis</artifactId>
            <version>1.4.1.RELEASE</version>
        </dependency>
        <!--邮箱-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

下面是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;


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;
    
    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;


@Configuration
public class Redisconfig {


    @Bean(name="redisTemplate")
    public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {
        RedisTemplate<String, String> template = new RedisTemplate<>();
        RedisSerializer<String> 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;


@Controller
public class EmailController {

    @Resource
    private MailServiceUtils mailServiceUtils;

    @Resource
    private RedisTemplate<String, Object> redisTemplate;

    
    @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";
    }

    
    @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.前端搭建

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
     <div>
         接收方邮箱号 <input type="text" id="to">
         <input type="button" value="发送验证码" id="yzm">
         验证码<input type="text" id="yz">
         <input type="submit" value="验证" id="y">
     </div>
<script type="text/javascript"  src="../static/Jquery-1.8.3.js"></script>
<script>
    
    $("#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)
            }
        })
    })
</script>
</body>
</html>

结果

redis和邮箱

页面

总结

到此这篇关于SpringBoot整合redis实现发送邮箱并验证的文章就介绍到这了,更多相关springboot redis发送邮箱内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: springboot整合redis实现发送邮箱并验证

本文链接: https://www.lsjlt.com/news/161435.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • springboot整合redis实现发送邮箱并验证
    目录1.起步2.工具类邮箱工具类redis乱码解决3.controller搭建4.前端搭建结果总结1.起步 pom文件 <!--集成redis--> ...
    99+
    2022-11-12
  • 如何使用springboot整合redis实现发送邮箱并验证
    这篇文章主要为大家展示了“如何使用springboot整合redis实现发送邮箱并验证”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用springboot整合redis实现发送邮箱并验证”...
    99+
    2023-06-22
  • springboot整合mail实现邮箱的发送功能
    第一步添加mail的依赖 <!--引入mail的依赖 --> <dependency> <groupId>org.springfr...
    99+
    2022-11-12
  • SpringBoot发送html邮箱验证码功能
    1. 效果展示(用户收到的) 2. 邮件推送管理(见以后的博客) 先看看如果管理员手动发送该如何操作 3. 后端核心代码(通用版) 3.1 SendEmailVO实体类 ...
    99+
    2022-11-12
  • java实现发送邮箱验证码
    本文实例为大家分享了java实现发送邮箱验证码的具体代码,供大家参考,具体内容如下 添加依赖 <!-- 邮箱验证码 https://mvnrepository.com/ar...
    99+
    2022-11-12
  • 使用SpringBoot发送邮箱验证码的简单实现
    目录题外话提前准备2.1 配置邮箱第三方登录2.1.1 点击设置——账户2.1.2 开启POP3/SMTP服务2.2 添加依赖2.3 yaml配置进入主题测试...
    99+
    2023-05-18
    SpringBoot 验证码 SpringBoot 邮箱发送
  • 【SpringBoot】| 邮箱发送验证码,你会了吗?
    目录 🦁 题外话🦁 提前准备2.1 配置邮箱第三方登录2.1.1 点击设置——账户2.1.2 开启POP3/SMTP服务 2.2 添加依赖2.3 yaml配置 🦁 进入主题&...
    99+
    2023-08-17
    spring boot java 后端
  • SpringBoot整合Javamail实现邮件发送
    博客主页:踏风彡的博客 博主介绍:一枚在学习的大学生,希望在这里和各位一起学习。 所属专栏:SpringBoot学习笔记 文章创作不易,期待各位朋友的互动,有什么学习问题都可在评论区留言或者私信我...
    99+
    2023-08-31
    spring boot java spring
  • Spring Boot整合邮箱发送邮件实例
    目录1.准备工作2.代码整合总结1. 准备工作 登录进自己的 qq 邮箱获取授权码 设置 – 账户 – POP3/IMAP/SMTP/Exchange/Car...
    99+
    2022-11-13
  • springboot实现发送QQ邮箱
    springboot发送电子邮箱,供大家参考,具体内容如下 1.开启qq邮箱开启IMAP/SMTP服务* 首先进入qq邮箱 点击设置 点击账户,然后往下拉 开启IMAP/SMT...
    99+
    2022-11-12
  • nodejs实现发送邮箱验证码功能
    本文实例为大家分享了nodejs实现发送邮箱验证码的具体代码,供大家参考,具体内容如下 今天做了个小demo,是用nodejs实现注册时(当然在别的地方也是可以用的)的邮箱验证功能,...
    99+
    2022-11-13
  • django注册用邮箱发送验证码的实现
    视图代码 lis = []#设置一个空列表用来存放发送的验证码,用来验证 def yzm1(): res1 = "" for i in range(4):#用四...
    99+
    2022-11-12
  • nodejs怎么实现发送邮箱验证码功能
    这篇文章主要讲解了“nodejs怎么实现发送邮箱验证码功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“nodejs怎么实现发送邮箱验证码功能”吧!1、使用模块:nodemailer安装:n...
    99+
    2023-06-30
  • Springboot整合RabbitMQ实现发送验证码的示例代码
    目录1.RabbitMQ的介绍2.搭建环境2.1引入jar包2.2生产者配置2.2.1Rabbit配置类2.2.2application.yml文件配置2.3消费者配置2.3.1消费...
    99+
    2022-11-13
  • 如何利用node实现发送QQ邮箱验证码
    目录开通QQ邮箱POP3/SMTP服务获取qq邮箱授权码搭建node接口服务开始安装插件开始编写index.js文件程序声明并定于发送邮件函数编写connect、body-parse...
    99+
    2022-11-13
  • 怎么利用node实现发送QQ邮箱验证码
    这篇文章主要介绍“怎么利用node实现发送QQ邮箱验证码”,在日常操作中,相信很多人在怎么利用node实现发送QQ邮箱验证码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么利用node实现发送QQ邮箱验证码...
    99+
    2023-06-30
  • 怎么用SpringBoot实现QQ邮箱发送邮件
    本篇内容主要讲解“怎么用SpringBoot实现QQ邮箱发送邮件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用SpringBoot实现QQ邮箱发送邮件”吧!1.获取QQ邮箱授权码2.导入邮...
    99+
    2023-06-22
  • Springboot整合实现邮件发送的原理详解
    目录开发前准备基础知识进阶知识加入依赖配置邮件测试邮件发送通常在实际项目中,也有其他很多地方会用到邮件发送,比如通过邮件注册账户/找回密码,通过邮件发送订阅信息等等。SpringBo...
    99+
    2022-11-12
  • 使用django怎么实现发送验证码注册邮箱
    这篇文章将为大家详细讲解有关使用django怎么实现发送验证码注册邮箱,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。视图代码lis = []#设置一个空列表用来存放发送的...
    99+
    2023-06-14
  • SpringBoot整合Javamail实现邮件发送的详细过程
    目录序言简单邮件多组件邮件(带附件,图片,超链接的邮件)发送带超链接的邮件发送带图片的邮件总结序言 ​ 发邮件对于咱们的Java来说是一个基本的功能,因此这里SpringBoot整合...
    99+
    2022-11-13
    springboot整合javamail springboot 邮件发送
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作