热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

短信验证功能、邮箱验证功能

发送短信需要借助第三方平台来发送短信,如阿里云、云通讯(对python3不友好)、腾讯云。在这里用的是腾讯云来作为示例腾讯云中短信准备工作1.腾讯云官网注册、实名认证、登录(不废话
发送短信

需要借助第三方平台来发送短信,如阿里云、云通讯(对python3不友好)、腾讯云。在这里用的是腾讯云来作为示例

腾讯云中短信准备工作

1. 腾讯云官网注册、实名认证、登录(不废话、跳过)

2. 点击页面右上角“控制台”

3. 点击导航栏的云产品,可以看到各种产品,找到“短信”。第一次使用会调到“申请开通页面”,勾选同意、开始接入。(这是个人认证,企业认证还需要一些相关的认证材料)

4. 接入后有三大功能:应用列表、套餐包管理、SDK & API.

* 应用列表:管理应用的;
* 套餐包管理:管理套餐包的;
* SDK & API:就是一些相关的指南手册(开发指南);

5. 在应用列表页“添加应用”,添加后点进去(如应用名:技术栈)

6. 来到国内短信,点击短信内容配置

7. 短信签名 -> 创建签名:要用到微信公众号或小程序(微信公众号注册,首页截图),填写见图创建签名

8. 短信正文 -> 创建正文模板:填写见图短信正文。

9. 等待审核

《短信验证功能、邮箱验证功能》
《短信验证功能、邮箱验证功能》

后台开发

更多短信发送参考SDK & API中的开发指南:文档中心 > 短信 > SDK文档 > Python SDK https://cloud.tencent.com/document/product/382/11672

配置SDK

pip install qcloudsms_py

准备必要参数

# 短信应用 SDK AppID 以1400开头 appid = 1400009099 # 短信应用 SDK AppKey 根据自己的短信应用配置 appkey = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad" # 需要发送短信的手机号码(非必填项,可在你的开发代码中传入) phone_numbers = ["21212313123", "12345678902", "12345678903"] # 短信模板ID,真实的模板 ID 需要在短信控制台中申请 template_id = 7839 # 这里的模板 ID`7839`只是示例, # 签名,使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台中申请 sms_sign = "腾讯云" # 发写个空字符串也行

指定模板 ID 单发短信

import random from utils.logging import logger from .settings import * from qcloudsms_py import SmsSingleSender ssender = SmsSingleSender(appid, appkey) # 生成验证码 def get_code(): code = '' for i in range(4): code += str(random.randint(0, 9)) return code def send_sms(mobile, code, exp): """ 发送短信 :param mobile: 电话号码 :param code: 验证码 :param exp: 过期时间 :return: """ try: respOnse= ssender.send_with_param(86, mobile, template_id, (code, exp), sign=sms_sign, extend="", ext="") # 短信发送成功的标识:没有异常且response大字典中的result为0 if response and response['result']==0: return True logger.error('sms error: %s'% response['errmsg']) return except Exception as e: logger.error("sms error: %s" % e) return False if __name__ == '__main__': code = get_code() print(code) result = send_sms('xxxxxxx',code,'1') # 电话号码,验证码,过期时间 print(result)邮箱验证功能

from email.header import Header from email.mime.text import MIMEText from email.mime.image import MIMEImage from email.mime.base import MIMEBase from email.mime.multipart import MIMEMultipart from email import encoders import smtplib import time class EmailPro: def send_mail(self, to_email, code): email_host = 'smtp.163.com' # 服务器地址 163邮箱"smtp.163.com" qq邮箱"smtp.qq.com"都需要开通smtp权限 sender = 'xxx@163.com' # 发件人(自己的邮箱) password = 'xxx' # 邮箱授权码 receiver = 'xxx@qq.com' # 收件人 msg = MIMEMultipart() now = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) subject = now + '邮箱激活' h = Header('发件人昵称自定义', 'utf-8') h.append('', 'ascii') msg["From"] = h msg['Subject'] = subject # 标题 msg['To'] = 'xxx' # ...收件人... signature = ''' \n\t You are most welcome! \n\t 点击下面的按钮激活邮箱 ''' # text = MIMEText(signature, 'plain') # 签名 # msg.attach(text) # 正文-图片 只能通过html格式来放图片,所以要注释25,26行 mail_msg = f'''

\n\t You are most welcome!

\n\t 点击下面的按钮激活邮箱

''' msg.attach(MIMEText(mail_msg, 'html', 'utf-8')) # 指定图片为当前目录 fp = open(r'E:\rent_house\media\banner\3.jpg', 'rb') msgImage = MIMEImage(fp.read()) fp.close() # 定义图片 ID,在 HTML 文本中引用 msgImage.add_header('Content-ID', '') msg.attach(msgImage) # ctype = 'application/octet-stream' # maintype, subtype = ctype.split('/', 1) # 附件-图片 # image = MIMEImage(open(r'E:\rent_house\media\banner\3.jpg', 'rb').read(), _subtype=subtype) # image.add_header('Content-Disposition', 'attachment', filename='img.jpg') # msg.attach(image) # 附件-文件 # file = MIMEBase(maintype, subtype) # file.set_payload(open(r'E:\rent_house\apps\utils\response.py', 'rb').read()) # file.add_header('Content-Disposition', 'attachment', filename='test.txt') # encoders.encode_base64(file) # msg.attach(file) # 发送 smtp = smtplib.SMTP() smtp.connect(email_host, 25) smtp.login(sender, password) smtp.sendmail(sender, to_email, msg.as_string()) smtp.quit() print('success') email_worker = EmailPro()

转:https://www.cnblogs.com/bladecheng/p/11565611.html


推荐阅读
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 微信小程序导航跟随的实现方法
    本文介绍了在微信小程序中实现导航跟随的方法。通过设置导航的position属性和绑定滚动事件,可以实现页面向下滚动到导航位置时,导航固定在页面最上方;页面向上滚动到导航位置时,导航恢复到原始位置;点击导航可以平滑跳转到相应位置。代码示例也给出了具体实现方法。 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • 微信民众号商城/小顺序商城开源项目介绍及使用教程
    本文介绍了一个基于WeiPHP5.0开发的微信民众号商城/小顺序商城的开源项目,包括前端和后端的目录结构,以及所使用的技术栈。同时提供了项目的运行和打包方法,并分享了一些调试和开发经验。最后还附上了在线预览和GitHub商城源码的链接,以及加入前端交流QQ群的方式。 ... [详细]
  • 起因由于我录制过一个小程序的课程,里面有消息模板的讲解。最近有几位同学反馈官方要取消消息模板,使用订阅消息。为了方便大家容易学 PythonFlask构建微信小程序订餐系统 课程。 ... [详细]
author-avatar
王友仁国珍_326
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有