利用Python发送短信,用处多多

01

腾讯云短信服务介绍

 

 

目前【腾讯云短信】为客户提供【国内短信】、【国内语音】和【海外短信】三大服务,腾讯云短信SDK支持以下操作:

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789

国内短信

国内短信支持操作:

- 指定模板单发短信

- 指定模板群发短信

- 拉取短信回执和短信回复状态

 

海外短信

海外短信支持操作:

- 指定模板单发短信

- 指定模板群发短信

- 拉取短信回执和短信回复状态

 

注:海外短信和国内短信使用同一接口,只需替换相应的国家码与手机号码,每次请求群发接口手机号码需全部为国内或者海外手机号码。

 

语音通知

语音通知支持操作:

- 发送语音验证码

- 发送语音通知

- 上传语音文件

- 按语音文件fid发送语音通知

- 指定模板发送语音通知类

 

 

02

 

 

 

开发环境准备

 

 

 

在开始开发云短信应用之前,需要准备如下信息:

 

- 1.获取SDK AppID和AppKey

 

云短信应用SDK `AppID`和`AppKey`可在[短信控制台](https://console.cloud.tencent.com/sms)的应用信息里获取,如您尚未添加应用,请到[短信控制台](https://console.cloud.tencent.com/sms)中添加应用。

 

- 2. 申请签名

 

一个完整的短信由短信`签名`和短信正文内容两部分组成,短信`签名`须申请和审核,`签名`可在[短信控制台](https://console.cloud.tencent.com/sms)的相应服务模块`内容配置`中进行申请。

 

- 3. 申请模板

 

同样短信或语音正文内容`模板`须申请和审核,`模板`可在[短信控制台](https://console.cloud.tencent.com/sms)的相应服务模块`内容配置`中进行申请。

 

具体操作如下:

 

1) 注册腾讯云账号

 

https://cloud.tencent.com/

 

在产品列表内找到短信,在短信内添加应用

点击“免费领取短信”,会送一百次调用。

 

然后我们创建一个应用:

获取对应的SDK AppID 和 App Key

配置短信内容

 

注:需先申请“短信签名”和“短信正文”,按照要求填写申请即可,腾讯云的审核效率还是很快的,一般在1-2个小时内就会有结果

总结:准备工作准备内容:SDK AppID、App Key、应用签名、短信正文模板ID。

 

2)安装 qcloudsms_py(腾讯云短信 Python SDK)

 

安装

 

pip

 

qcloudsms_py采用pip进行安装,要使用qcloudsms功能,只需要执行:

 

pip install qcloudsms_py

 

手动

 

github:https://github.com/qcloudsms/qcloudsms_py

 

1.手动下载或clone最新版本qcloudsms_py代码

2.在qcloudsms_py目录运行pythonsetup.pyinstall或直接把qcloudsms_py所在目录加入sys.path(python2/python3都支持)

 

 

 

03

 

 

开发实现

 

 

 

 

如果我们直接按官方的案例实现,会出现ssl:certificate_verify_failed这个问题,报错如下:

rubyCaughtvmodlfault:[SSL:CERTIFICATE_VERIFY_FAILED]certificateverifyfailed(_ssl.c:590)

 

 

产生这个问题的原因在于python本身,pyhon升级到2.7.9以后,引入了一个新特性,当使用urllib打开https的链接时,会检验一次ssl证书。而当目标网站使用的是自签名证书时,就会抛出urllib2.URLError的错误,所以我们这里导入了ssl的包来避免这个问题。

# @Time : 2020/5/24 22:13# @Author : 编程技术圈# @Site : # @File : send_msg.py# @Software: PyCharm
from qcloudsms_py import SmsSingleSenderfrom qcloudsms_py.httpclient import HTTPErrorimport randomimport ssl
ssl._create_default_https_context = ssl._create_unverified_context
# 使用腾讯云发送手机6位随机验证码class TestQCloudSMS(object):    def __init__(self, phone_num):        self.appid =''  # 准备工作中的SDK AppID,类型:int        self.appkey = ''   # 准备工作中的App Key,类型:str        self.phone_num = phone_num        self.sign = ''  # 准备工作中的应用签名,类型:str
    def make_code(self):        """        :return: code 6位随机数        """        code = ''        for item in range(6):            code += str(random.randint(0, 9))        return code
    def send_msg(self):        ssender = SmsSingleSender(self.appid, self.appkey)        try:            # parms参数类型为list            rzb = ssender.send_with_param(86, self.phone_num, 613429, [self.make_code()],                                          sign=self.sign, extend='', ext='')            print(rzb)        except HTTPError as http:            print("HTTPError", http)        except Exception as e:            print(e)

if __name__ == '__main__':    phone_num = ['156********']    sendmsg = TestQCloudSMS(random.choices(phone_num)[0])   # 需传入发送短信的手机号,单发    sendmsg.send_msg()

当我们程序运行后,返回的"errmsg"为"ok"的时候,就发送成功了,这时我们看下手机有没有收到:

手机收到的正是我们定制的模板内容,搞定!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值