新建app专门处理邮箱验证码的获取、发送和处理功能

新建app:utils

生产和储存邮箱验证信息

新建eamil_send.py文件,用于获取、储存用户在注册、找回密码时提交的数据字段和系统自动生成的随机邮箱验证码字符串

# -*- coding: utf-8 -*-
__author__ = 'oldlee'
__date__ = '2019-04-23 17:49'from random import Randomfrom users.models import EmailVerifyRecord#随机生成一串字符串
def random_str(randomlength=8):str = ''chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789'length = len(chars) - 1random = Random()for i in range(randomlength):str+=chars[random.randint(0, length)]return str# 定义验证码发送方法,并传入一个邮箱地址和验证码类型(默认为rigister)
def send_register_email(email,send_type='register'):# 实例化users的model里的邮箱验证码类,对验证码进行赋值存储email_recode = EmailVerifyRecord()# 利用上面的随机字符串方法创建一个16位的字符串并赋值给codecode = random_str(16)# 然后把code赋值给users里的验证码类里的code,作为用户邮箱验证码email_recode.code = codeemail_recode.email = emailemail_recode.send_type = send_typeemail_recode.save()# 以上就成功把用户在注册或者找回密码时提交的字段和系统随机生成字符串保存在了数据库中

发送邮件

内容准备好之后,我们利用Django为我们提供的函数发送邮件:

包含上面的完整发送邮件的代码:

较上面的代码,增加了

导入了send_mail包,添加了发送邮件的内容

from random import Random
from django.core.mail import send_mailfrom users.models import EmailVerifyRecord
from shengxianshop.settings import EMAIL_FORMdef random_str(randomlength=8):str = ''chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789'length = len(chars) - 1random = Random()for i in range(randomlength):str+=chars[random.randint(0, length)]return str# 定义验证码发送方法,并传入一个邮箱地址和验证码类型(默认为rigister)
def send_register_email(email,send_type='register'):# 实例化users的model里的邮箱验证码类,对验证码进行赋值存储email_recode = EmailVerifyRecord()# 利用上面的随机字符串方法创建一个16位的字符串并赋值给codecode = random_str(16)# 然后把code赋值给users里的验证码类里的code,作为用户邮箱验证码email_recode.code = codeemail_recode.email = emailemail_recode.send_type = send_typeemail_recode.save()# 以上就成功把用户在注册或者找回密码时提交的字段和系统随机生成字符串保存在了数据库中# 定义邮件标题和内容email_title = ''email_body = ''# 如果发送邮件的类型是注册,就定义邮件内容if send_type == 'register':email_title = '欧德李学习社区'email_body = '欧德李社区激活链接:http://127.0.0.1:8000/active/{0}'.format(code)#调用send_mail函数,传入邮件标题和内容、setting.py文件中的EMAIL_FORM和邮箱listsend_start = send_mail(email_title,email_body,EMAIL_FORM,[email])

配置setting.py中的邮件信息:


EMAIL_HOST = 'smtp.sina.cn'
EMAIL_POST = 25
EMAIL_HOST_USER = '这里是邮箱@sina.cn'
EMAIL_HOST_PASSWORD = '这里是密码'
EMAIL_USE_TLS = False
EMAIL_FORM = '这里是邮箱@sina.cn'

最后,在view.py文件中的登录方法中调用发送邮件的函数:

并传入邮箱列表和发送类型(此处以register注册为例)

7、邮箱验证码的功能设计相关推荐

  1. 1024电商项目的邮箱验证码与图形验证码功能模块

    项目基于springcloudalibaba,模块功能大致概括就是登录页面的时候先完成图形验证码的校验,输入的数字和字母与图片上的相对应之后,会向对应的邮箱或手机号发送邮箱/短信验证码二次验证.这里展 ...

  2. spring boot 实现发送邮箱验证码

    首先设置一下发件人邮箱,以QQ邮箱为例: 找到帐户,开启POP3/SMTP服务 然后会提醒你怎么去实现,验证完后,会给你一个授权码,记住这个授权码,后端spring boot 会用到 下面回到IDEA ...

  3. Java发送邮箱验证码、session校验功能

    本篇主要描述"发送邮箱验证码.session校验"相关前(htmljs)后(java)台代码,业务逻辑示例,闲话少诉,直接上代码. 1.引入的jar包是mail-1.4.jar 2 ...

  4. Python - Flask 图片验证码和邮箱验证码的后端实现

    1. 图片验证码 1.1 工具类 - utility.py 将所有和图片验证码有关的方法放在类 ImageCode import random import string from io import ...

  5. C# WinForm 使用SMTP协议发送QQ邮箱验证码

    文章目录 前言 功能实现步骤 一.获取QQ邮箱授权码 二.功能界面 三.创建发送邮箱验证码的类 四.在From1中调用类中的函数,实现功能 前言   在程序设计中,发送验证码是常见的一个功能,用户在注 ...

  6. java邮箱验证码_Java实现邮箱验证码

    原标题:Java实现邮箱验证码 声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. 邮箱验证码 一般能使用邮箱注 ...

  7. mysql查询使用qq邮箱注册_Spring Boot实现qq邮箱验证码注册和登录验证功能

    1.登录注册思路 这是一个使用spring boot做的一个qq邮箱注册和登录的项目. 没写前端页面,使用postman测试.有截图详细. 1.1.思路 注册:通过输入的邮箱发送验证码,检验前端传来的 ...

  8. php 怎么验证邮箱验证码,PHP实现邮箱验证码验证功能

    标签:邮箱验证   登录   格式   tar   程序   body   用户名   实现   include *文章来源:https://blog.egsec.cn/archives/623  ( ...

  9. java web 实现qq发送邮箱验证码

    java web 实现qq邮箱验证码发送 第一步: 打开qq邮箱 设置---->选择账户----> 打开 打开之后我们将会获得一个授权码 现在我们拿到授权码之后 我们就可以开始写代码了 1 ...

最新文章

  1. 借助亚马逊S3和RapidMiner将机器学习应用到文本挖掘
  2. Web - 客户端存储的几种方式
  3. 计算机应用基础课程没有期末考试,《计算机应用基础》课程期末考试2009—2010学年第一学期.doc...
  4. string replace
  5. 飞畅科技-工业以太网交换机组网方式介绍
  6. 五、集合——3-Set集合
  7. Trend Micro Password Manager 多个高危漏洞
  8. excel保存时 检测到错误,Microsoft Excel可通过删除或修复某些功能来保存此文件
  9. Leetcode 17.电话号码的组合(回溯法)
  10. 【代码笔记】iOS-底下滚动,上面标题栏也会跟着变动
  11. 双显示器如何设置上下显示和鼠标上下进入第二屏幕?
  12. 人工智能的发展趋势综述
  13. 印象笔记如何分享链接_几步搞懂印象笔记的链接功能
  14. 25岁到30岁的女生还可以长高么? 非药物
  15. c++ 之 括号匹配(栈)
  16. 组件实战(一)——导航栏设计
  17. docker swarm的常用操作
  18. 一看就懂的红黑树之红黑树的实现
  19. 用UNetbootin 制作Linux 安装U盘
  20. Linux下C语言实现TCP文件传输

热门文章

  1. 雷军:人因梦想而伟大 金山骨子里重视技术尊重程序员
  2. C语言初步-顺序结构-已知三边求三角形面积-海伦公式
  3. python+tensorflow-gpu+CUDA+cudnn+显卡配置关键步骤详解
  4. MTL文件的参数含义
  5. JAVA 技术方向赏金任务-快递 E 栈训练任务
  6. 1029:三角形的判定
  7. 考研经验贴(一):什么可以让你考研坚持到底
  8. Tidb分布式数据库
  9. mongodb中地理位置信息的存储和查询
  10. 随机数——Random