首页 > 技术文章 > python 发送短信

win-lin08 2019-05-06 11:57 原文

#接口类型:互亿无线触发短信接口,支持发送验证码短信、订单通知短信等。
#账户注册:请通过该地址开通账户http://user.ihuyi.com/register.html
#注意事项:
#(1)调试期间,请使用用系统默认的短信内容:您的验证码是:【变量】。请不要把验证码泄露给其他人。
#(2)请使用 APIID 及 APIKEY来调用接口,可在会员中心获取;
#(3)该代码仅供接入互亿无线短信接口参考使用,客户可根据实际需要自行编写;
   
#!/usr/local/bin/python
#-*- coding:utf-8 -*-
import httplib
import urllib
 
host  = "106.ihuyi.com"
sms_send_uri = "/webservice/sms.php?method=Submit"
 
#查看用户名 登录用户中心->验证码通知短信>产品总览->API接口信息->APIID
account  = "用户名"
#查看密码 登录用户中心->验证码通知短信>产品总览->API接口信息->APIKEY
password = "密码"
 
def send_sms(text, mobile):
    params = urllib.urlencode({'account': account, 'password' : password, 'content': text, 'mobile':mobile,'format':'json' })
    headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
    conn = httplib.HTTPConnection(host, port=80, timeout=30)
    conn.request("POST", sms_send_uri, params, headers)
    response = conn.getresponse()
    response_str = response.read()
    conn.close()
    return response_str
 
if __name__ == '__main__':
 
    mobile = "138xxxxxxxx"
    text = "您的验证码是:121254。请不要把验证码泄露给其他人。"
 
    print(send_sms(text, mobile))

 

 

 

2, 腾讯群发消息

#! /usr/bin/env python2
# encoding:utf-8
# python 2.7 测试通过
# python 3 更换适当的开发库就能使用,在此我们不额外提供

import httplib
import json
import hashlib
import random

#定义发送短信的类
class SmsSender:
    sdkappid = 0
    appkey = ""
    # API发送短信的文档
    url = "https://yun.tim.qq.com/v3/tlssmssvr/sendsms"
    
    #构造函数,把appid和appkey传入
    def __init__(self, sdkappid, appkey):
        self.sdkappid = sdkappid
        self.appkey = appkey
        
    #发短信的函数,传入国家码,手机号和内容
    def sendMsg(self, nationCode, phoneNumber, content):
        #接口定义的appkey+phoneNumber的md5()变量
        sig = hashlib.md5(self.appkey+phoneNumber).hexdigest()
        pkg = {
            "tel": {
                "nationcode": nationCode,
                "phone": phoneNumber
            },
            "type": "0",
            "msg": content,
            "sig": sig,
            "extend": "",
            "ext":"123"
        }
        
        con = None
        try:
            con = httplib.HTTPSConnection('yun.tim.qq.com', timeout=10)
            body = json.dumps(pkg)
            rnd = random.randint(100000, 999999)
            wholeUrl = '%s?sdkappid=%d&random=%d' % (self.url, self.sdkappid, rnd)
            con.request('POST', wholeUrl, body)
            response = con.getresponse()
            print response.status,response.reason
            data = response.read()
            print data
        except Exception,e:
            print e
        finally:
            if(con):
                con.close()

if __name__ == "__main__":
    # 开放者实际发送短信时请使用申请的 sdkappid 和 appkey
    #定义3个变量
    wxName='test1'
    wxPhone='test2'
    wxComment='test3'
    #创建对象
    sender = SmsSender(你的appid, "你的appkey")
    #要发送的手机号码
    phones = ["13833338888","13888883333"]
    for phone in phones:
        sender.sendMsg("86",phone,"昵称:"+wxName+",电话:"+wxPhone+",评论:"+wxComment)

 

推荐阅读