发送短信

需要借助第三方平台来发送短信,如阿里云、云通讯(对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 codedef 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为0if response and response['result']==0:return Truelogger.error('sms error: %s'% response['errmsg'])returnexcept Exception as e:logger.error("sms error: %s" % e)return Falseif __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 timeclass 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('<xxx@163.com>', 'ascii')msg["From"] = hmsg['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'''<p>\n\t You are most welcome!</p>
<p>\n\t 点击下面的按钮激活邮箱</p>
<button style="background-color: #31708f; border-radius: 3px"><a href="http://127.0.0.1:8000/user/email/active/?email={to_email}&code={code}" style="color: white;font-size: 25px;text-decoration: none">激活邮箱</a></button>
<p><img src="cid:image1"></p>
'''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', '<image1>')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

短信验证功能、邮箱验证功能相关推荐

  1. iOS 打电话、发短信、发邮箱 、跳转网站 功能(系统方法)

    //联系人:石虎  QQ: 1224614774昵称:嗡嘛呢叭咪哄 /** 注意:打电话.发短信.发邮箱 .跳转网站 功能(系统方法)---->要真机才有效果 */ 1.简单实现效果图: 2.实 ...

  2. 【SDU项目实训2019级】前端和后端实现手机短信验证码登录和注册功能

    目录 1.前端登录页面手机号验证码登录页面: 2.前端获取验证码的函数: 3.后端获取验证码代码 4.前端登录的函数: 5.后端登录的实现 6.注册功能前后端的实现 1.前端登录页面手机号验证码登录页 ...

  3. FLY攻略之第二回: 接入腾讯云短信服务 实现手机验证注册

    接入腾讯云短信服务 实现手机验证注册 上回说到 ,完成了security的接入和登录功能,但是在准备登录尝试security的强大时发现,还没有完成注册功能,根本没有账号提供登录,那么这回,就实现手机 ...

  4. 移动网页如何实现发送短信和拨打电话的功能

    手机页面实现发送短信和拨打电话的功能非常简单,只需要<a>标签加一个属性就可以了. 1.发送短信的功能 html前端代码: 1 <!DOCTYPE html> 2 <ht ...

  5. 短信平台专业版软件客户端功能详解源码搭建|移讯云短信系统

    国际短信平台专业版软件客户端功能详解|移讯云短信系统 首页显示 剩余条数 充值总数 提交总数 成功数量 失败数量 未知数量 代发数量 签名数量 最新提交 平台公告 API接口文档 短信发送 发送短信选 ...

  6. 国际网页短信系统平台搭建后台功能篇|移讯云短信系统

    国际网页短信系统平台搭建后台功能篇|移讯云短信系统 通道路由功能介绍 支持地区通道分流,支持关键字,关键词通道分流,支持白名单独立通道,支持全网通道分流,支持通道可发地区设置,通道路由分组,用户通道分 ...

  7. 20、实现短信验证码的登录注册功能

    实现短信验证码的登录注册功能 第一步:查看接口内容 为什么用@RequestBody因为其中我们前端传过来的是json数据那么后端我们就要用@requestBody注解来接收了. 查看写这个实体类 这 ...

  8. (4)用接口完成下面的任务。 1)定义一个手机(MobilePhone)接口,它有打电话(call)、接电话(receive)、发送短信(sendMsg)、接受短信(receiveMsg)的功能。 2

    (4)用接口完成下面的任务. 1)定义一个手机(MobilePhone)接口,它有打电话(call).接电话(receive).发送短信(sendMsg).接受短信(receiveMsg)的功能. 2 ...

  9. 国际web短信软件平台开发搭建后台功能|移讯云短信系统

    国际web短信软件平台开发搭建后台功能|移讯云短信系统 特色功能模块功能列表 1:通道路由模块 1.1:通道地区设置 1.2:通道关键词分流 1.3:白名单独立通道设置 1.4:通道分组设置 1.5: ...

  10. 苹果手机用计算机怎么表白,隐藏在iphone短信中的自带功能,超适合表白,快学起来...

    原标题:隐藏在iphone短信中的自带功能,超适合表白,快学起来 我们身边一定有很多用苹果手机的朋友,但是我敢肯定的是,他们一定不会知道苹果手机所有隐藏的功能.今天小编就发现苹果手机在发短信的时候竟然 ...

最新文章

  1. 妈呀,终于搞定VIM的复制粘贴问题了!
  2. 《Access 2007开发指南(修订版)》一一1.3 具有缩放能力的Access
  3. 华为手机怎么看图片属性_华为手机音量小怎么办
  4. java堆外内存6_Java堆外内存排查小结
  5. mysql数据库-1.文件导入mysql表secure_file_priv报错问题解决 mysql select outfile不能导出亲测
  6. PATB1014福尔摩斯的约会
  7. IPC$连接常见问答
  8. 不用正则表达式,用javascript从零写一个模板引擎(一)
  9. --从输入URL到页面展示的详细过程
  10. 【半年总结】愿有岁月可回首
  11. linux环境搭建pypi源,使用pypi-server搭建简单的PyPI源
  12. 用友系统与银行接口对接实现财务数据的导入
  13. 索益Mike的excel商品操作
  14. 微信小程序——诉讼费计算
  15. typecho图标_使你的Typecho支持Emoji表情
  16. 解决IDEA中maven搭建web项目,在maven中有依赖但是在部署包中生成不出依赖
  17. iconfont采坑
  18. minikube 部署
  19. html代码标签优化与提速,HTML代码标签优化与提速
  20. Altium Designer 16

热门文章

  1. 以图搜图源码html,以图搜图功能实现 (源码+解析)
  2. WLAN和WiFi是同一个东西吗
  3. 计算机英语期末论文格式,计算机英文论文大纲格式 计算机英文论文大纲如何写...
  4. 游戏太难通关?教你用CE和Python写一个属于自己的植物大战僵尸修改器(无限阳光,无限金币,无冷却时间)
  5. php 月份查询生日_PHP判断日期(生日)格式是否正确合法的方法
  6. 神经网络计算棒怎么用,英特尔神经网络计算棒
  7. 小甲鱼C++ 1 语言与思想介绍
  8. Python:整数的阶乘
  9. “夏栀的博客”网站一期建站通知贴
  10. [小白slam攻略]ROVIO安装运行及保存轨迹用evo评估