当前位置 博文首页 > django注册用邮箱发送验证码的实现

    django注册用邮箱发送验证码的实现

    作者:舔舔柠檬 时间:2021-07-07 18:33

    视图代码

    lis = []#设置一个空列表用来存放发送的验证码,用来验证
    def yzm1():
        res1 = ""
        for i in range(4):#用四个随机数组成验证码
            num = random.randint(0, 9)
            res1 += str(num)
        lis.append(res1)#将验证码放入空的列表中
        return res1#返回验证码
    class zc(View):
        def get(self, request):
            return render(request, 'zc.html', locals())
        def post(self, request):
            name = request.POST['qq']#获取前端传递进来的数据
            subject = '验证码'
            message = vercode()#获取验证码
            form = '837620306@qq.com'#获取发送验证码的邮箱
            # EMAIL_HOST_USER
            rcipient_list = [name]
            res = send_mail(subject=subject, message=message, from_email=form, recipient_list=rcipient_list)#发送验证码返货真或假,假代表没有发送成功
            if res == 1:#判断是否发送成功
                return redirect('/app01/yzm/')#成功的话跳转到验证的网页
            else:#不成功的话返回注册界面
                return render(request, 'zc.html', locals())
    def yzm2(request):
        if request.method == 'GET':
            return render(request, 'yzm.html', locals())
        elif request.method == 'POST':
            a = request.POST['much']#获取到用户输入的验证码
            if a == lis[-1]:#取最新的验证码
                return HttpResponse('验证码正确')
            else:
                return HttpResponse('no')

    用来发送验证码的邮箱需要打开POP3/SMTP服务和IMAP/SMTP服务,并且获得POP3/SMTP服务的授权码

    settings 配置文件

    另外需要对django的settings文件进行设置

    # 设置发送邮件服务器:smtp.qq.com,
    EMAIL_HOST = 'smtp.qq.com'
    # 设置端口号,如果使用的是SSL,端口号为465或587
    EMAIL_PORT = 25
    #设置发件人邮箱
    EMAIL_HOST_USER = 'xxxxx'
    # 设置发件人 授权码   (POP3/SMTP服务的授权码)
    EMAIL_HOST_PASSWORD = 'xxxxx'
    # 设置是否启用安全链接
    EMAIL_USER_TLS = True
    
    jsjbwy
    下一篇:没有了