1. 程式人生 > 實用技巧 >Python自動化測試傳送郵件不難!聊一聊 Python 傳送郵件的3種方式

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/python3
import 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,群內會有不定期的分享測試資料。
  如果文章對你有幫助,麻煩伸出發財小手點個贊,感謝您的支援,你的點贊是我持續更新的動力。