zoukankan      html  css  js  c++  java
  • 人工智能-邮箱验证

    有些用户在注册时需要邮箱验证,下面介绍邮箱验证时怎么实现的 。

    邮箱验证是有时限性的,一般是1分钟(60秒)

    首先需要在seetings里面配置邮箱配置文件

    授权密钥需要在邮箱里获得

    1.

     2.设置-账户(选第二个)

    3.

    #QQ邮箱服务配置文件
    EMAIL_USE_SSL = True
    #邮箱服务
    EMAIL_HOST = 'smtp.qq.com'
    #端口号
    EMAIL_PORT = 465
    #账号
    EMAIL_HOST_USER = '204.........@qq.com'
    #授权秘钥
    EMAIL_HOST_PASSWORD = 'dirgpnjkyytjehef'
    #发件人
    DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
     
     
    163邮箱配置文件

    EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

    EMAIL_USE_TLS = False   #是否使用TLS安全传输协议(用于在两个通信应用程序之间提供保密性和数据完整性。)

    EMAIL_USE_SSL = True    #是否使用SSL加密,qq企业邮箱要求使用

    EMAIL_HOST = 'smtp.163.com'   #发送邮件的邮箱 的 SMTP服务器,这里用了163邮箱

    EMAIL_PORT = 25     #发件箱的SMTP服务器端口

    EMAIL_HOST_USER = 'charleschen@xmdaren.com'    #发送邮件的邮箱地址

    EMAIL_HOST_PASSWORD = '*********'         #发送邮件的邮箱密码(这里使用的是授权码)

     
     
     
     定义发送路由
     
     
     
    # 导包
    # 导入send_mail
    from django.core.mail import send_mail

    # 导入默认发送邮箱
    # from mymac.settings import DEFAULT_FROM_EMAIL
    import time


    # 定义一个发送邮件类
    class SendMail(object):

      # 初始化方法
      def __init__(self,tittle,body,email_to,from_email):
        self.tittle = tittle
        self.body = body
        self.email_to = email_to
        self.from_email = from_email

      # 定义发送方法
      def do_send_mail(self):
        # 开始发邮件
        send_status = send_mail(self.tittle,self.body,self.from_email,self.email_to)
        if send_mail:
          return '发送成功'+time.ctime()
        else:
          return '发送失败'+time.ctime()
     
     写测试页面
     
     
    # redirect :重定向
    from django.shortcuts import render,redirect
    from django.http import HttpResponse,HttpResponseRedirect
    # 导入类视图
    from django.views import View
    # 导入反向解析方法
    from django.urls import reverse
    # 导入发件人
    from mymac.settings import DEFAULT_FROM_EMAIL
    # 导入邮件类
    from myapp.d12_mail_tool import SendMail


    # 定义视图类
    class SenDjMail(View):
      def get(self,request):
      #可以传参多个邮箱
        sendmail = SendMail('你好','这里是测试环节',['2049180260@qq.com','1961608187@qq.com'],DEFAULT_FROM_EMAIL)
        return HttpResponse(sendmail.do_send_mail())


    # d定义注册页面
    class Register(View):
    # 定义方法
      def get(self,request):
        return HttpResponse('注册页面')
     
     
    写前端
    <!DOCTYPE html>
    {# 加载静态文件#}
    {% load static %}


    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>首页</title>
    {# 载入js库 #}
    <script src="{% static 'js/jquery-1.12.1.min.js' %}"> </script>
    <script src="{% static 'js/axios.js' %}"></script>
    </head>
    <body>
        {# 绑定事件 #}
        <button id="btu" onclick="sendmail()">免费获取验证码</button>
     
        <input type="text">

        <button>提交验证码</button>

        <script>
     
          //定义计时器
          let countdown = 60;

          // 倒计时方法
          function settime(obj){

            // 计时结束
            if(countdown == 0){

              //控制暗纽
              obj.attr('disabled',false);
              //回归正常状态a
              obj.html('免费获取验证码');
              //重新设置计时器
              countdown = 60;
              return;
          }
          //正在计时
          else{
            //控制暗纽
            obj.attr('disabled',true);
            //进度提醒
            obj.html('重新发送('+countdown+')');
            //重新设置计时器
            countdown--;

          }
          //设置动态效果  1000秒  (使用闭包形式)
          setTimeout(function(){ settime(obj) },1000);
          }
          //定义发送邮件
          function sendmail(){

            //开始倒数
            let obj = $("#btu");
            settime(obj);

          }



    </script>



    </body>
    </html>
     
     
    以上就是一个简单的邮箱验证方法
     
     
  • 相关阅读:
    自我介绍
    oracle 几种分页
    for update nowait
    彻底卸载SQL 2005
    如何将 SQL SERVER 彻底卸载干净
    iBatis 到 MyBatis区别
    SqlMapConfig.xml配置文件详解
    mybatis简单应用(基于配置文件)
    ibatis学习笔记一:sqlMapConfig.xml文件配置详解
    Extjs 中的添加事件总结
  • 原文地址:https://www.cnblogs.com/chengdongzi/p/10537998.html
Copyright © 2011-2022 走看看