天天看点

大话“用户注册激活,忘记密码”发送邮件功能

鉴于最近有一部分童鞋留言关于“用户注册发送邮件激活”功能不太懂,在此我将用一片通俗易懂的话术简单说明一下“用户注册发送邮件激活”的大致原理和过程。

用户注册发送邮件是每个网站的最基本功能,一般有两种处理方式:

  1. 第一种为直接发送激活邮件,用户直接点击激活链接就会挑战到相应的激活页面
  2. 第二种为发送随机校验码到用户指定的邮箱,然后用户登录邮箱复制校验码

下面我简单介绍一下2种方式的大致实现原理;

  1. 直接发送邮件

关于直接发送邮件这一块,其实并没有想象的那么深奥,一种最简单的做法就是分为如下几步走:

    1)第一步设计用户信息

用户信息包含激活状态status字段,同时包含一个唯一标识字段code,这个标识可以通过uuid之类的规则生成即可。

    2)第二步设计接收激活链接的接口

该接口需要包含一个用户的唯一标识code,通过code用来校验该激活请求的身份,如果身份合法,判断status状态是否已激活,如果已激活则提示已激活,勿重复激活之类的提示语,如果未激活,则更改status为激活状态即可,提示激活成功。

另外补充:还可以设置过期时间之类的,如果超过指定时间范围发送的激活请求可以提示请求已过期,提示重新发送激活请求等。

模拟请求链接:http://ip:port/confirm?code= aa88f5b3c1024e7eb12ca7a5154e1db9

注:code字符串只是用来标识身份的,你也可以用其它任何方式代替,只需注意对url后面的参数进行编码加密,然后接收到后在进行转码解密即可,保证身份信息的安全性。

    3)第三步就是发送邮件

关于发送邮件,我觉得没有多少可以说的,如果你是测试该功能,直接采用个人qq邮箱或者163邮箱之类(具体怎么配置,怎么写代码发送,自行百度一下),但是 如果是企业生产环境强烈建议采用企业邮箱或者搭建企业邮件服务器,因为个人邮箱是有很多限制的。

如下是七牛云用户注册的激活邮件,当然参数被加密了。

大话“用户注册激活,忘记密码”发送邮件功能

如下为重复点击激活链接的效果:

大话“用户注册激活,忘记密码”发送邮件功能

    2.发送激活码

发送激活码应该是越来越普遍和通用的一种方式了,毕竟简单方便。

     1)生成随机码

后台通过一定的规则随机生成4-6位(一般是5位左右,看情况)的随机数字,然后将其存入到缓存redis并设置过期时间(一般是几分钟左右),目的是防止一个过期验证码无限次使用。

     2)发送验证码邮件

将后台生成的随机码以邮件的形式发送到用户邮箱即可(具体邮件发送请自行百度)

     3)用户点击提交按钮后,后台获取用户输入的随机码与redis中的随机码进行校验即可

类似接收验证码效果如下:

大话“用户注册激活,忘记密码”发送邮件功能

 另外有童鞋提到验证邮箱的正确性这个问题?

其实你只需验证用户输入的邮箱格式正确性即可,至于这个邮箱存在与否,你是无法得知的,你也不需要知道,因为这是用户自己的问题,毕竟他如果想收到邮件 肯定会输入一个真实存在的邮箱地址的。

有疑问的童鞋可以后台留言!

一个热衷于分享技术和生活的程序猿,让我们一起交流吧~    

大话“用户注册激活,忘记密码”发送邮件功能

微信扫描二维码,关注我的公众号