1. 程式人生 > >Python基礎—14-郵件與短信

Python基礎—14-郵件與短信

-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(
    MAIL_PASSWORD, 123456) # 消息內容 content = 請點擊右邊鏈接完成激活,激活 # 創建消息對象,並設置內容, # 第二個用於指定文本內容類型,若不指定默認是文本 message = MIMEText(content, html) # 設置主題 message[Subject] = 賬戶激活 # 設置發送者 message[From] = mail_user # 創建郵件發送類 mail = smtplib.SMTP(mail_server, 25) # 身份認證 mail.login(mail_user, mail_pwd)
    # 指定接收者,多個接收者使用列表 to = [email protected] # 發送郵件 mail.sendmail(mail_user, to, message.as_string()) # 結束 mail.quit()

  • 總結:

    • 郵箱服務器配置
    • 創建用於發送的消息對象MIMEText
    • 創建用於發送郵件的對象smtplib.SMTP
    • 使用郵件發送對象發送消息對象

預備知識

  • http.client

    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

    • 說明:是使用非常廣泛的兩種數據傳輸格式,之前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-郵件與短信