如今經過後臺系統自動發短信的需求愈來愈多,主要用於驗證碼的發送或者項目監控異常時的報警提醒等等,因爲以前有用到部分因此記錄一下供之後使用。可是如今騰訊雲的短信功能還在內測階段,因此還有不少功能仍在Awaiting.html
首先固然是登陸騰訊雲首頁https://www.qcloud.com/product/sms.html點擊「當即選購」後會跳出如下的頁面:python
因爲是內測,因此點擊「服務開通指南」,就會讓你寫封郵件給騰訊,把你的狀況按照模板一五一十地balabala給他,json
而後騰訊審覈完以後終於可使用這個功能了,好可貴= =,進入正題數組
建立一個短信應用(首先得有騰訊雲帳號,而且有餘額,由於發短信是要錢的),建立完後就能夠獲得這個應用的AppId和Appkey,在python腳本中會用到,同時還能夠配置短信頻率避免發的次數過多,畢竟4分錢一條嘛~app
而後再設置短信的簽名以及模板,所謂簽名就是相似於【騰訊科技】這種東西,可是注意這個並不能設置地特別高大上,由於要!審!核!,什麼都要審覈的,因此放dom
棄吧騷年,簽名申請號之後就是正文:模板部分,包括固定部分和變量部分,其中變量部分是用{}括起來,引用時換成本身的變量便可。函數
待審覈成功後就可使用python腳本調用模板了,因爲有單發短信的Demo代碼https://www.qcloud.com/doc/product/382/5804測試
直接下載便可,羣發的其實用個數組執行循環就能夠達到效果,代碼以下:url
#! /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)
其中比較蛋疼的就是模板裏的符號問題,建議最好都用中文或者英文,否則可能匹配不上,OK至於其餘功能之後等徹底推出了再慢慢使用吧。spa