Python自動化測試發送郵件太麻煩?!一塊兒聊一聊 Python 發送郵件的3種方式

1. 前言

發送郵件,咱們在平時工做中經用到,作爲測試人員,在自動化測試中用的也比較多,須要發送郵件給某領導html

 SMTP是Python默認的郵件模塊,能夠發送純文本、富文本、HTML 等格式的郵件python

今天咱們來講一說Python 發送郵件的 3 種方式面試

2. 開啓郵箱SMTP服務和獲取受權碼

登陸 QQ 郵箱爲例,咱們須要開啓 SMTP 服務,登陸郵箱依次點擊設置-帳戶服務器

 

 

 開啓SMTP測試

而後,生成受權碼spa

注:3d

須要開啓POP3/SMTP服務code

受權碼作爲郵箱密碼server

1. 方式一:smtplib

smtplib是 Python 自帶的依賴庫,能夠直接導入使用,經過郵箱帳號、受權碼、郵箱服務器地址初始化一個 SMTP 實例,而後進行鏈接htm

初學者感受這個會挺複雜,請繼續往下看

1.1發送純文本郵件

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

運行結果:

 

 注:當前發送郵件我的不推薦使用,因此只演式一種發送純文本郵件


2. 方式二: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("發送成功")

3. 方式三:yagmail

他們都說yagmail 只須要三行代碼,就能夠實現發送郵件,爽歪歪!

相比 zmail,yagmail 實現發送郵件的方式更加簡潔優雅

首先,安裝依賴庫(pip install yagmail)

發送郵件有三個步驟:

一、鏈接服器(相似你先要登陸郵箱)

二、編輯郵件內容和主題

三、發送郵件

#!/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)

最後

總結了 Python3種發送 郵件的方式,實際項目中,更推薦使用後兩種方式


  若是對軟件測試、接口測試、自動化測試、技術同行、持續集成、面試經驗交流。感興趣能夠進到902061117,羣內會有不按期的分享測試資料。   若是文章對你有幫助,麻煩伸出發財小手點個贊,感謝您的支持,你的點贊是我持續更新的動力。

相關文章
相關標籤/搜索