邮箱发送验证码实现注册(QQ邮箱)

news/2024/11/28 22:31:45/

登录自己的QQ邮箱进入主页面
点击左上角的设置 --> 账户
在这里插入图片描述

找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
在这里插入图片描述
开启‘POP3/SMTP服务 (如何使用 Foxmail 等软件收发邮件?)’进行手机验证

在这里插入图片描述
在这里插入图片描述
记住授权码

在django的settings里配置

在这里插入图片描述
邮箱登录密码填刚才记住的授权码

视图Views:

利用到redis的缓存,存储验证码

from rest_framework.views import APIView
from rest_framework.response import Response
from .sers import *
import hashlib
import random
import string
import redis
from django.core.mail import send_mailrd = redis.Redis(port=6379,host='localhost')class RegisterView(APIView):def post(self,request):name = request.data.get('name')pwd = request.data.get('passwd')passwd = hashlib.md5()passwd.update(pwd.encode('utf-8'))passwd.hexdigest().upper()ve_code = request.data.get('ve_code')email = request.data.get('email')vcode = rd.get(email)if not vcode:return Response({'msg':'验证码失效'})user = User.objects.filter(name=name,passwd=passwd).first()if user:return Response({'msg':'用户已存在,请直接登陆'})vcode = vcode.decode()if vcode == ve_code:data = {'name':name,'email':email,'passwd':passwd,}User.objects.create(name=name,passwd=passwd,email=email)return Response({'msg':'注册成功','code':200})else:return Response({'msg':'注册失败','code':500})# 发送邮箱验证码
class Send_email(APIView):def post(self,request):email = request.data.get('email')try:capta = ''words = ''.join((string.digits))for i in range(6):capta += random.choice(words)rd.set(email,capta)rd.expire(capta,60*5)send_mail(subject='注册邮件',message='注册验证码!!!!!',from_email='xxxxxxxx@qq.com',recipient_list=[email],html_message='注册验证码:{}'.format(capta))return Response({'msg':'验证码已发送','code':200})except Exception as e:return Response({'msg':'验证码发送失败','code':400})

发送验证码即可进行注册啦~~


http://www.ppmy.cn/news/676616.html

相关文章

个人如何申请注册公司邮箱?企业邮箱注册申请流程详解

大部分人可能知道邮箱,但是公司邮箱是什么?企业邮箱注册申请流程?个人如何申请注册公司企业邮箱? 在一家公司实习时人事告诉我使用公司邮箱,用我名字拼音命名的,还是无限容量、单次群发500封、邮件误删可以…

注册QQ邮箱

假设你要注册的qq邮箱是xxxqq.com 通过下面的网址获取QQEmail账号是否可用: http://emailreg.qq.com/cgi-bin/signup/ajaxcheckmail?type1&emailxxxqq.com 返回的result取值: 0   可以使用 -2   该帐号已被注册-3   该帐号格式不合法-4   不能绑定qq.…

一个简单的OPC UA/ModbusTCP 网关(Python)

使用我前面几篇博文的内容,能够使用Python编写一个最简单的OPC UA /ModbusTCP网关。 从这个程序可以看出: 应用OPC UA 并不难,现在我们就可以应用到工程应用中,甚至DIY项目也可以。不必采用复杂的工具软件。使用Python 来构建工…

彻底清除Trojan.DL.Delf.cxw的方法

症状:瑞星监控经常检测到C:/%windows/%system32/brlmon.dll 感染Trojan.DL.Delf.cxw,病毒总是出现,查杀不干净。 解决方法: 1、启动计算机,按F8键进入系统安全模式; 2、鼠标双击打开“我的电脑”&#xff0…

简单的登录系统(Java版)

简单的登录系统 class Check{public boolean validate(String name, String password){return name.equals("cxw") && password.equals("msyq");} }class Operate{private final String[] info;public Operate(String[] info){this.infoinfo;}pub…

它来了,Flutter 应用内调试工具 UME 开源啦

作者:字节跳动终端技术 —— 赵瑞 先说重点 Pub 地址:https://pub.dev/packages/flutter_umeGitHub 地址:https://github.com/bytedance/flutter_ume 背景 字节跳动已有累计超过 70 款 App 使用了 Flutter 技术,公司内有超过 …

基于TransportClient整合

1、什么是ElasticSearch? ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业…

Java避免过多的if else

避免过多的if else 在Java 代码里会遇见很多的if else, 最近在坐企业微信回调处理的时候, 根据不同事件状态进行不同的业务, 状态大概有8个, 所以if else 也有8个, 特别不优雅, 所以整理一下常见的方法&…