python介面自動化 發郵件帶多個附件

2021-10-10 00:03:54 字數 2443 閱讀 9678

我們希望的是,自動化指令碼執行結束以後,把當前的測試報告和其他相關文件(例如用例)一起傳送給專案經理,所以就把傳送郵件的指令碼寫在批量執行文件裡了,因為程式是順序執行的,把發郵件的寫在批量執行下邊就可以了。

上**:

import unittest

import htmltestreportcn

from email.mime.multipart import mimemultipart

from email.mime.text import mimetext

import smtplib

import sys

import io

test_dir =

'./'

discover = unittest.defaulttestloader.discover(test_dir,pattern=

'api_test.py'

)result_file_name = test_dir +

'/result.html'

#這裡給測試報告取名,沒有用時間命名,因為用時間的話,發郵件的時候,處理起來比較麻煩,所以就直接用result了,每次執行指令碼時,都會覆蓋result,所以傳送這乙個名稱的檔案就可以了

fp =

open

(result_file_name,

'wb'

)if __name__==

'__main__'

: runner = htmltestreportcn.htmltestreportcn(

stream = fp,

title = u'用例'

) runner.run(discover)

fp.close(

)#傳送多個檔案

defsend_email

(file_path)

: username =

"*****@qq.com"

passwd =

"*****"

sender =

"*****@qq.com"

receivers =

'*****@qq.com'

msg = mimemultipart(

'related'

) msg[

'subject']=

'報告'

msg[

'from'

]= sender

msg.attach(mimetext(

'測試報告和測試用例'))

#新增附件

for path in file_path:

#這裡是新增多個不同型別的附件的位置,我這裡就新增了兩個,html和excel的,如果還有其他型別的檔案,比照著if語句複製就可以了

if".html"

in path:

#html檔案

html_name = path.split(

"\\")[

-1]open

(path,

'rb'

).read())

part.add_header(

'content-disposition'

,'attachment'

, filename=html_name)

msg.attach(part)

if".xls"

in path:

#excel檔案

xlsx_name = path.split(

"\\")[

-1]open

(path,

'rb'

).read())

part.add_header(

'content-disposition'

,'attachment'

, filename=xlsx_name)

msg.attach(part)

smtp = smtplib.smtp(

) smtp.connect(

"smtp.qq.com"

) smtp.login(username, passwd)

smtp.sendmail(sender, receivers, msg.as_string())

smtp.quit(

)print

("郵件傳送成功"

)

html_path =

".\\result.html"

xls_path =

".\\saoma.xls"

file_path =

[html_path,xls_path]

send_email(file_path)

執行完成以後,結果如下:

python介面自動化 發郵件帶附件

首先建立乙個py檔案,名稱為send main.py,檔案內容如下 from email.mime.text import mimetext import smtplib import sys import io buffer encoding utf8 smtpserver smtp.qq.com...

Python自動發郵件

摘要 本文介紹如何使用python發郵件,主要原理是利用qq郵箱傳送郵件 獲得授權碼後將其寫在下面程式中,然後就可以給自己的郵箱發郵件了 使用qq郵箱傳送郵件 content是傳送的內容,格式為 hostusername你自己的qq郵箱名 tousername 接收方的郵箱賬號 import smt...

python自動發郵件

本文以qq郵箱為例 python 內建smtplib庫支援傳送郵件 import smtplib from email.mime.text import mimetext from email.header import header 例項乙個郵箱物件 郵箱我們以qq郵箱為例 埠為465或者587,...