Python基礎—14-郵件與短信
阿新 • • 發佈:2018-09-21
-type imap 註冊驗證 請求 charset 網站 string lpar 密碼
郵件與短信
郵件發送
-
簡介:
- 郵件服務器、賬戶、密碼
- 相關協議:SMTP、POP3、IMAP
- 默認TCP協議端口:25
-
用途:經常用在一個網站的註冊激活、通知、找回密碼等場景
-
庫:
smtplib
-
示例:
import os import smtplib # 用於郵件發送的類 from email.mime.text import MIMEText # 郵箱服務器 mail_server = ‘smtp.163.com‘ # 用戶名 mail_user = ‘[email protected]‘ # 密碼或授權碼 # 為了密碼不對外公開,可以通過環境變量進行獲取 mail_pwd = os.getenv(‘
-
總結:
- 郵箱服務器配置
- 創建用於發送的消息對象
MIMEText
- 創建用於發送郵件的對象
smtplib.SMTP
- 使用郵件發送對象發送消息對象
預備知識
-
http.client
import http.client # 創建連接(相當於瀏覽器) connect = http.client.HTTPConnection(‘www.baidu.com
-
json與xml
- 說明:是使用非常廣泛的兩種數據傳輸格式,之前xml居多,現在json居多。
- json使用
import json d = {‘name‘: ‘xiaoming‘, ‘age‘: ‘20‘} # 將字典對象轉換為JSON格式的字符串 s = json.dumps(d) print(s) print(type(s)) # 將JSON格式的字符串轉換為字典對象 d2 = json.loads(s) print(d2) print(type(d2))
-
urllib.parse
from urllib.parse import urlencode, urlparse, parse_qs d = {‘name‘: ‘xiaoming‘, ‘age‘: ‘20‘} # 將字典數據進行url編碼:name=xiaoming&age=20 print(urlencode(d)) url = ‘http://www.baidu.com/abc/def?page=2&id=5&like=sport&like=music‘ # 解析url p = urlparse(url) print(p.query) # 將url請求字符串轉換為字典 d2 = parse_qs(p.query) print(d2)
短信發送
-
說明:註冊驗證碼、通知消息、營銷短信、...
-
平臺:阿裏、秒嘀、雲之訊、...
-
認識:雲之訊(www.ucpaas.com)
-
代碼示例:
# 賬戶sid account_sid = ‘b5c6fd1d02071a766009475f0478e0ac‘ # auth token auth_token = ‘2426bff7df8ff95f59fcbcdce3362c58‘ # 應用標識 app_id = ‘fac78e7f7f0647c7a47c4809ff564f5c‘ # 短信模板標識 template_id = ‘291768‘ # 模板參數,多個使用逗號隔開 param = ‘name‘ # 電話 mobile = ‘xxx‘ # 數據字典 form_data = { "sid": account_sid, "token": auth_token, "appid": app_id, "templateid": template_id, "param": param, "mobile": mobile } # 將字典轉換JSON字符串 import json form_data = json.dumps(form_data) # 創建‘瀏覽器‘對象 import http.client connect = http.client.HTTPConnection(‘open.ucpaas.com‘) # 準備請求頭 headers = { ‘Accept‘: ‘application/json‘, ‘Content-Type‘: ‘application/json;charset=utf-8‘ } # 請求地址 url = ‘https://open.ucpaas.com/ol/sms/sendsms‘ # 發送請求 connect.request(method=‘POST‘, url=url, body=form_data, headers=headers) # 獲取響應 resp = connect.getresponse() # 打印響應 print(resp.read().decode(‘utf-8‘))
-
友情提示:出現錯誤,去查看返回狀態碼,並進行解決。
-
秒嘀平臺簡介
Python基礎—14-郵件與短信