redis(保存邮件激活码)

官网下载: http://redis.io/download

使用对应位数操作系统文件夹下面命令启动 redis

  redis-server.exe 服务启动程序
  redis-cli.exe 客户端命令行工具
  redis.conf 服务配置文件

通过 redis-server.exe 启动服务,默认端口 6379

通过 redis-cli.exe 启动客户端工具

使用Jedis和图形界面工具操作redis

网址: https://github.com/xetorthio/jedis

maven坐标

安转redis-desktop-manager图形化界面

添加链接

spring data redis的使用

官网: http://projects.spring.io/spring-data-redis/

引入spring data redis

        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-redis</artifactId>
            <version>1.4.1.RELEASE</version>
        </dependency>

引入redis的配置

    <!-- 引入redis配置 -->
    <import resource="applicationContext-cache.xml"/>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:jaxws="http://cxf.apache.org/jaxws"
    xmlns:cache="http://www.springframework.org/schema/cache"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx.xsd
    http://www.springframework.org/schema/data/jpa
    http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
    http://cxf.apache.org/jaxws
    http://cxf.apache.org/schemas/jaxws.xsd
    http://www.springframework.org/schema/cache
    http://www.springframework.org/schema/cache/spring-cache.xsd">

    <!-- jedis 连接池配置 -->
     <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxIdle" value="300" />
        <property name="maxWaitMillis" value="3000" />
        <property name="testOnBorrow" value="true" />
    </bean>  

    <!-- jedis 连接工厂 -->
    <bean id="redisConnectionFactory"
        class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
        p:host-name="localhost" p:port="6379" p:pool-config-ref="poolConfig"
        p:database="0" />  

    <!-- spring data 提供 redis模板  -->
    <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
        <property name="connectionFactory" ref="redisConnectionFactory" />
        <!-- 如果不指定 Serializer   -->
        <property name="keySerializer">
            <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" />
        </property>
        <property name="valueSerializer">
            <bean class="org.springframework.data.redis.serializer.StringRedisSerializer">
            </bean>
        </property>
    </bean>  

</beans>

测试代码

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
public class RedisTemplateTest {

    @Autowired
    private RedisTemplate<String, String> redisTemplate;

    @Test
    public void testRedis() {
        // 保存key value
        // 设置30秒失效
        redisTemplate.opsForValue().set("city", "重庆", 30, TimeUnit.SECONDS);

        System.out.println(redisTemplate.opsForValue().get("city"));
    }
}

保存邮件激活码

在用户点击注册时,生成激活码并发送一封激活邮件,

// 发送一封激活邮件
        // 生成激活码
        String activecode = RandomStringUtils.randomNumeric(32);

        // 将激活码保存到redis,设置24小时失效
        redisTemplate.opsForValue().set(model.getTelephone(), activecode, 24, TimeUnit.HOURS);

        // 调用MailUtils发送激活邮件
        String content = "尊敬的客户您好,请于24小时内,进行邮箱账户的绑定,点击下面地址完成绑定:<br/><a href=‘" + MailUtils.activeUrl + "?telephone="
                + model.getTelephone() + "&activecode=" + activecode + "‘>绑定地址</a>";
        MailUtils.sendMail("激活邮件", content, model.getEmail());

激活邮件和发送邮件的工具类

package cn.itcast.bos.utils;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;

public class MailUtils {
    private static String smtp_host = "smtp.163.com"; // 网易
    private static String username = "XXXXXX"; // 邮箱账户
    private static String password = "XXXXXX"; // 邮箱授权码

    private static String from = "[email protected]"; // 使用当前账户
    public static String activeUrl = "http://localhost:9003/bos_fore/customer_activeMail";

    public static void sendMail(String subject, String content, String to) {
        Properties props = new Properties();
        props.setProperty("mail.smtp.host", smtp_host);
        props.setProperty("mail.transport.protocol", "smtp");
        props.setProperty("mail.smtp.auth", "true");
        Session session = Session.getInstance(props);
        Message message = new MimeMessage(session);
        try {
            message.setFrom(new InternetAddress(from));
            message.setRecipient(RecipientType.TO, new InternetAddress(to));
            message.setSubject(subject);
            message.setContent(content, "text/html;charset=utf-8");
            Transport transport = session.getTransport();
            transport.connect(smtp_host, username, password);
            transport.sendMessage(message, message.getAllRecipients());
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("邮件发送失败...");
        }
    }
}
时间: 2024-10-11 06:19:40

redis(保存邮件激活码)的相关文章

SpringBoot实现网站注册,邮件激活码激活功能

项目源码:https://gitee.com/smfx1314/springbootemail 上一篇文章已经讲到如何springboot如何实现邮件的发送,趁热打铁,这篇文章实现如下功能. 很多网站注册功能都会给您注册的邮箱发送一封邮件,里面是一串连接,点击链接激活功能,今天咱们就实现这个功能. 原理: 在您注册的时候,User类中设置一个邮件码code,同时用户状态未激活.邮件码可以通过UUID实现,这样在注册的时候发送一封邮件,把这个邮件码以html的格式发送到指定邮箱,然后通过点击链接,

工具类学习-java实现邮件发送激活码

问题:用java实现服务器发送激活码到用户邮件. 步骤一:如果是个人的话,确保在本地安装邮件服务器(易邮服务器)和邮件客户端(foxmail). 步骤二:导入jar包  mail.jar,其他的需要什么协议导什么jar. package cn.itcast.store.utils; import java.util.Properties; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.M

Java实现注册时发送激活邮件+激活

最近从项目分离出来的注册邮箱激活功能,整理一下,方便下次使用 1.RegisterController.java package com.app.web.controller; import java.text.ParseException; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; i

Django发送邮件及邮件激活

根据前端请求头中传入的JWT token的信息,使用DRF中追加的JWT认证判断是否登录 axios.get(this.host + '/user/', { // 向后端传递JWT token的方法 headers: { 'Authorization': 'JWT ' + this.token }, responseType: 'json', }) 在settins配置文件中添加配置DRF的JWT # 配置DRF REST_FRAMEWORK = { # 异常处理 'EXCEPTION_HAND

豆瓣Redis解决方案Codis源码剖析:Proxy代理

豆瓣Redis解决方案Codis源码剖析:Proxy代理 1.预备知识 1.1 Codis Codis就不详细说了,摘抄一下GitHub上的一些项目描述: Codis is a proxy based high performance Redis cluster solution written in Go/C, an alternative to Twemproxy. It supports multiple stateless proxy with multiple redis instan

php 生成8位数唯一的激活码

/** *生成激活码 * */ function showGenerationActivationCode(){ #渠道类型id $channel_id=$_POST['channel']; #根据渠道id去查询渠道英文名称 $channelInfo = load_mysql ( "channelInfo" ); $_res=$channelInfo->getInfoById($channel_id); $en_name=$_res['en_name']; #活动类型 $type

estore商城案例(一)------用户注册&amp;邮件激活(下)

先补上昨天注册页面的验证码代码: 1 public void doGet(HttpServletRequest request, HttpServletResponse response) 2 throws ServletException, IOException { 3 BufferedImage bf=new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB); 4 Graphics2D graphice=(Graphics2D

Redis .Net客户端源码

1.简单介绍 当前NoSql使用已经极为普遍,无论是Java生态圈,还是.net生态圈.大大小小的Web站点在追求高性能高可靠性方面,不由自主都选择了NoSQL技术作为优先考虑的方面.主流的技术有:HBase.MongoDB.Redis等等.我为什么要选择Redis呢?一是因为,我跟风学来的...二是,套用某位大神的话,Redis是Nosql数据库中使用较为广泛的非关系型内存数据库,redis内部是一个key-value存储系统.它支持存储的value类型相对更多,包括string(字符串).l

java 实现注册时发送激活邮件+激活

在很多网站注册的时候,为了验证用户信息的真实合法,往往需要验证用户所填邮件的准确性.形式为:用户注册时填写邮箱,注册完成后,网站会向用户所填邮箱发送一封激活邮件,用户点击激活邮件中的链接后,方可完成注册. 最近项目中也用到这个需求,做了个Demo与大家分享,大至思想如下: 数据库表结构 用户表t_user有五个字段分别为用户名.密码.邮箱地址.激活码.状态: | username | password | email |code | state | 核心代码: UserManager.java