1. 程式人生 > 實用技巧 >【自動化測試學習筆記】python傳送郵件模組--zmail

【自動化測試學習筆記】python傳送郵件模組--zmail

前言

  • 為什麼選擇zmail?
  • zmail能解決工作中什麼樣的問題?

安裝zamil模組

pip install zamil

zmail有哪些優點?

  • 自動查詢伺服器自地址及其埠
  • 自動使用合適的協議登入
  • 自動將python字典轉換為MIME物件(帶附件)
  • 自動新增郵件標題和本地名稱,以避免伺服器拒絕您的郵件
  • 輕鬆自定義郵件標題
  • 支援HTML作為郵件內容
  • 只需要python> = 3.5,您可以將其嵌入到專案中而無需其他模組

演式傳送郵件

  1. 建1個HTMl檔案
  2. 郵件傳送HTML檔案
  3. 演式效果

實戰演練

![ ](C:\Users\yifan\AppData\Roaming\Typora\typora-user-images\image-20200731130139161.png)

生成HTML測試報告

#!/usr/bin/python3

# @Time    : 2020/7/31 10:55
# @Author  : 程式設計師一凡

import unittest
import HTMLTestRunner


# 用例目錄地址
test_dir = "./"

def case():
    #  載入測試用例
    discover = unittest.defaultTestLoader.discover(test_dir,
                                                   pattern="test*.py"
                                                   )
    return discover

if __name__ == '__main__':
    # 測試報告存放目錄
    report_path = "D:/report/result.html"
    
    file = open(report_path, 'wb')
    # 定義測試報告
    runner = HTMLTestRunner.HTMLTestRunner(stream=file,
                                           title="測試報告",
                                           description="用列執行結果")
    # 執行用例生成報告
    runner.run(case())

執行結果:

![image-20200731113929169](C:\Users\yifan\AppData\Roaming\Typora\typora-user-images\image-20200731113929169.png)

郵件模組

#!/usr/bin/python3

# @Time    : 2020/7/31 8:28
# @Author  : 程式設計師一凡

import zmail

def s_mail()
    report_path = "D:/report/result.html"

    MAIL = {
        'subject': '郵件主題',  
        'content_text': '測試傳送郵件',
        'attachments': report_path, 
    }
    server = zmail.server("[email protected]", "htkbbafwycpgbgfd")
    # 如果有多個收件人,則用列表
    server.send_mail("[email protected]", MAIL)

完整程式碼

#!/usr/bin/python3

# @Time    : 2020/7/31 10:55
# @Author  : 程式設計師一凡

import unittest
import HTMLTestRunner
# 匯入傳送郵件模組
from Mail.zmail import s_mail

# 用例
test_dir = "./"

def case():
    #  載入用例
    discover = unittest.defaultTestLoader.discover(test_dir,
                                                   pattern="test*py",
                                                   )
    return discover

if __name__ == '__main__':
    # 報告生成目錄
    report_path = "D:/report/result.html"
    # 測試結果寫入到報告裡
    file = open(report_path, 'wb')
    runner = HTMLTestRunner.HTMLTestRunner(stream=file,
                                           title="測試報告",
                                           description="用列執行結果")
    # 執行用例生成報告
    runner.run(case())
    # 一定是要先關閉檔案再執行下方的傳送郵件,否則傳送後的附件會為空
    file.close()
    s_mail()

執行結果:

![image-20200731114444873](C:\Users\yifan\AppData\Roaming\Typora\typora-user-images\image-20200731114444873.png)

願你我相遇,皆有所獲!