14-python基礎知識-郵件與簡訊
阿新 • • 發佈:2018-12-28
郵件與簡訊
郵件傳送
-
簡介:
- 郵件伺服器:使用者名稱、密碼
- 相關協議:
- SMTP:簡單郵件傳輸協議,預設埠是25
- POP3:郵局通訊協議
- IMAP:互動式郵件存取協議
-
用途:網站註冊啟用、通知、找回密碼、營銷等
-
庫:
smtplib
-
示例:
import os import smtplib from email.mime.text import MIMEText # 郵件伺服器 mail_server = '' # 使用者名稱
-
說明:
- 郵箱伺服器配置
- 建立郵件訊息物件MIMEText
- 建立用於傳送郵件的物件smtplib.SMTP
- 使用郵件傳送物件傳送郵件
-
QQ郵件傳送特別提醒:
- 密碼不是QQ登入密碼,而是授權碼,需要開啟SMTP服務並設定
- 必須使用加密傳輸,也就是建立SMTP_SSL物件傳送郵件
預備知識
-
http.client:可以傳送http請求
import http.client # 建立物件(相當於一個瀏覽器) connect = http.client.HTTPConnection('www.baidu.com') # 傳送請求 connect.request(method='GET', url='http://www.baidu.com') # 獲取響應 resp = connect.getresponse() # 列印響應的內容 print(resp.read().decode('utf-8'))
-
json和XML
- 說明:使用非常廣泛的資料傳輸格式,現在JSON使用居多
- JSON使用:
import json d = {'name': 'xiaoming', 'age': 18} # 將字典轉換為JSON字串 s = json.dumps(d) print(s, type(s)) # 將JSON字串轉換為字典 d2 = json.loads(s) print(d2, type(d2))
-
urllib.parse
from urllib.parse import urlencode, urlparse, parse_qs d = {'name': 'xiaoming', 'age': 18} # name=xiaoming&age=18 # 將字典資料進行URL編碼 print(urlencode(d)) url = 'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=python&rsv_pq=df80f3db0000abd0&rsv_t=a542qF5GDdQDk6bhs2c3yr7BGToMf0ge1e2b%2BnpWm0lY4ZV8ICYY1yM48FI&rqlang=cn&rsv_enter=1&rsv_sug3=6&rsv_sug1=6&rsv_sug7=101' # 解析URL p = urlparse(url) # 提取請求字串 print(p.query) query_str = 'like=sport&like=music&like=games&name=ergou' # 解析請求字串:將請求字串轉換為字典 # d2 = parse_qs(p.query) d2 = parse_qs(query_str) print(d2)
簡訊傳送
-
說明:註冊登入驗證碼、通知訊息、營銷簡訊等。
-
平臺:阿里、秒嘀、雲之訊、…
-
認識:雲之訊(www.ucpaas.com)
-
示例:
# 賬戶sid sid = 'b5c6fd1d02071a766009475f0478e0ac' # 認證令牌 token = '2426bff7df8ff95f59fcbcdce3362c58' # 應用ID appid = 'fac78e7f7f0647c7a47c4809ff564f5c' # 模板ID templateid = '29735' # 引數 param = ‘’ # 接收手機號 mobile = '' # 引數字典 data = { "sid": sid, "token": token, "appid": appid, "templateid": templateid, "param": param, "mobile": mobile, } # 將字典轉換為JSON字串 import json json_data = json.dumps(data) # print(json_data) # 建立'瀏覽器'物件 import http.client connect = http.client.HTTPConnection('open.ucpaas.com') # 介面地址 url = 'https://open.ucpaas.com/ol/sms/sendsms' # 請求頭 header = { 'Accept': 'application/json', 'Content-Type': 'application/json;charset=utf-8', } # 傳送請求 connect.request(method='POST', url=url, body=json_data, headers=header) # 獲取響應 resp = connect.getresponse() # 列印響應內容 print(resp.read().decode('utf-8'))