mirror of https://github.com/lework/script
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
3.8 KiB
106 lines
3.8 KiB
# coding:utf-8 |
|
import requests |
|
import urllib |
|
|
|
|
|
# 利用139邮箱发短信功能发送免费短信,以达到即使报警信息。 |
|
# 短信收费说明: |
|
# 计费周期赠 30 条,超出按 0.1元/条 计费。 |
|
# 向联通、电信用户发短信,与本地资费相同,不计入赠送条数。 |
|
# 一次可发给10个号码,每天限发250条,每月限发2500条。 |
|
# by lework |
|
# 2015年4月12日 |
|
|
|
def send_sms(cmcc_tel, cmcc_passwd, send_phone, content): |
|
""" |
|
:param cmcc_tel: 139邮箱账号 |
|
:param cmcc_passwd: 账号密码 |
|
:param send_phone: 发送的手机号 |
|
:param content: 发送的内容 |
|
:return: 返回('Sent:', '15821******', 'Success') |
|
""" |
|
|
|
if not cmcc_tel.strip() or not cmcc_passwd.strip() or not send_phone.strip() or not content.strip(): |
|
return 'Error: Parameter error' |
|
if len(content) >= 70: |
|
return 'Error: Exceeded the character limit' |
|
|
|
# 登录139邮箱 |
|
url = "https://wapmail.10086.cn/index.htm" |
|
headers = { |
|
'Accept': 'text/html,application/xhtml+xml,application/xml;q:0.9,image/webp,*/*;q:0.8', |
|
'Accept-Encoding': 'gzip,deflate,sdch', |
|
'Host': 'wapmail.10086.cn', |
|
'Referer': 'http://wapmail.10086.cn/', |
|
'Content-Type': 'application/x-www-form-urlencoded', |
|
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0' |
|
} |
|
data = { |
|
'ur': cmcc_tel, |
|
'pw': cmcc_passwd |
|
} |
|
cmcc_session = requests.Session() |
|
try: |
|
cmcc_res = cmcc_session.post(url, headers=headers, data=data) |
|
user_sid = cmcc_res.url.split('&') |
|
user_vn = user_sid[2].replace('vn=', '') |
|
user_sid = user_sid[0].split('=')[1] |
|
except: |
|
return 'Error: Login Connection Failed' |
|
|
|
if cmcc_res.url == url: |
|
return 'Error: login Failed' |
|
|
|
# 发送短信 |
|
sms_url = "http://m.mail.10086.cn/ws12/w3/w3smsend" |
|
|
|
sms_hearder = { |
|
'Accept': 'text/html,application/xhtml+xml,application/xml;q:0.9,image/webp,*/*;q:0.8', |
|
'Accept-Encoding': 'gzip,deflate,sdch', |
|
'Host': 'm.mail.10086.cn', |
|
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', |
|
'Referer': 'http://m.mail.10086.cn/bv12/sendsms.html?&sid=%s&vn=%s&vid=&cmd=40' % (user_sid, user_vn), |
|
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0' |
|
} |
|
sms_data = { |
|
'sid': user_sid, |
|
'vn': user_vn, |
|
'cmd': '2', |
|
'content': content, |
|
'reciever': send_phone |
|
} |
|
try: |
|
sms_send = cmcc_session.post(sms_url, headers=sms_hearder, data=sms_data) |
|
except: |
|
return 'Error: Send Connection Failed' |
|
|
|
sms_result = urllib.unquote(sms_send.text) |
|
sms_result = eval(sms_result.replace('null', '"null"').encode('utf-8')) |
|
|
|
# 登出139邮箱 |
|
logout_url = "http://m.mail.10086.cn/wp12/w3/logout" |
|
logout_data = { |
|
'sid': user_sid, |
|
'vn': user_vn |
|
} |
|
|
|
logout_hearder = { |
|
'Accept': 'text/html,application/xhtml+xml,application/xml;q:0.9,image/webp,*/*;q:0.8', |
|
'Accept-Encoding': 'gzip,deflate,sdch', |
|
'Host': 'm.mail.10086.cn', |
|
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', |
|
'Referer': 'http://m.mail.10086.cn/bv12/home.html?&sid=%s&vn=%s' % (user_sid, user_vn), |
|
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0' |
|
} |
|
|
|
logout_send = cmcc_session.post(logout_url, headers=logout_hearder, data=logout_data) |
|
# 返回代码 |
|
if str(sms_result['result']['eroerCode']) == '0': |
|
return 'Sent:', send_phone, 'Success' |
|
else: |
|
return 'Sent:', send_phone, 'Failed' |
|
|
|
|
|
if __name__ == "__main__": |
|
send = send_sms('1871*****', '*********', '158215*****', u'报警信息:警告') |
|
print send
|
|
|