Python自動化測試傳送郵件不難!聊一聊 Python 傳送郵件的3種方式
1. 前言
傳送郵件,我們在平時工作中經用到,做為測試人員,在自動化測試中用的也比較多,需要傳送郵件給某領導
SMTP是Python預設的郵件模組,可以傳送純文字、富文字、HTML 等格式的郵件
今天我們來說一說Python 傳送郵件的3種方式
2. 開啟郵箱SMTP服務和獲取授權碼
登入 QQ 郵箱為例,我們需要開啟 SMTP 服務,登入郵箱依次點選設定-賬戶
開啟SMTP
然後,生成授權碼
注:
需要開啟POP3/SMTP服務
授權碼做為郵箱密碼
3. 方式一:smtplib
smtplib是 Python 自帶的依賴庫,可以直接匯入使用,通過郵箱賬號、授權碼、郵箱伺服器地址初始化一個 SMTP 例項,然後進行連線
初學者感覺這個會挺複雜,請繼續往下看
3.1傳送純文字郵件
執行結果:
注:當前傳送郵件個人不推薦使用,所以只演式一種傳送純文字郵件
4. 方式二:zmail
由於SMPT太過於麻煩複雜,所以就用zamil傳送郵件試試。
zmail模組只支援Python3模組,該模組為第3方模組,需自行安裝(pip install zmail)
使用 Zmail 傳送接收郵件方便快捷,不需手動新增伺服器地址、埠以及適合的協議,可以輕鬆建立 MIME 物件和標頭檔案
注意:Zmail 僅支援Python3,不支援 Python2
#!/usr/bin/python3import zmail def send_mail(): # 定義郵件 mail = {"subject": "介面測試報告",# 任一填寫 'content_text': '手機號歸屬地_API自動化測試報告',# 任一填寫 # 多個附件使用列表 "attachments": "E:/report/result.html" } # 自定義伺服器 server = zmail.server("傳送人郵箱.com","QQ郵箱是用授權碼", smtp_host="smtp.qq.com", smtp_port = 465) # 傳送郵件 server.send_mail("收件人QQ郵箱", mail) try: send_mail() except FileNotFoundError: print("未找到檔案") else: print("傳送成功")
5. 方式三:yagmail
他們都說yagmail只需要三行程式碼,就可以實現傳送郵件,爽歪歪!
相比zmail,yagmail 實現傳送郵件的方式更加簡潔優雅
首先,安裝依賴庫(pip install yagmail)
傳送郵件有三個步驟:
1、連線服器(類似你先要登入郵箱)
2、編輯郵件內容和主題
3、傳送郵購件
#!/usr/bin/python3 import yagmail # 定義使用者名稱、授權碼、伺服器地址且連線伺服器 mail_server = yagmail.SMTP(user='發件人郵箱', passwd='授權碼', host='smtp.qq.com') # 傳送物件列表 Email_to = ['收件人郵箱'] subject = '任一填寫' Email_text = "任一填寫內容" # 多個附件用逗號隔開 attachments = ['html報告目錄地址'] # 傳送郵件 mail_server.send(Email_to, subject, Email_text, attachments)
6. 最後
總結了 Python3種傳送 郵件的方式,實際專案中,更推薦使用後兩種方式
如果對軟體測試、介面測試、自動化測試、技術同行、持續整合、面試經驗交流。感興趣可以進到902061117,群內會有不定期的分享測試資料。
如果文章對你有幫助,麻煩伸出發財小手點個贊,感謝您的支援,你的點贊是我持續更新的動力。