您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了如何實(shí)現(xiàn)Python發(fā)送郵件封裝,內(nèi)容簡而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會(huì)有收獲的,下面讓小編帶大家一起來看看吧。
引言
在做接口測(cè)試的時(shí)候,我們不僅需要將測(cè)試結(jié)果以報(bào)告的形式展示,還需要將測(cè)試結(jié)果以郵件的形式發(fā)送到需要知道的人手中。那么如何發(fā)送郵件呢?
郵件發(fā)送方式
測(cè)試結(jié)果以郵件形式發(fā)送的方式有兩種:
第一種:手動(dòng)統(tǒng)計(jì)結(jié)果數(shù)據(jù)及報(bào)告,用郵件客戶端或web版形式發(fā)送,比如:用QQ郵箱,foxmail郵箱...
第二種:使用腳本發(fā)送,比如:利用python內(nèi)置對(duì)SMTP協(xié)議的支持,發(fā)送郵件。
介紹一下:
SMTP是發(fā)送郵件的協(xié)議,Python內(nèi)置對(duì)SMTP的支持,可以發(fā)送純文本郵件、HTML郵件以及帶附件的郵件;Python對(duì)SMTP支持有smtplib和email兩個(gè)模塊,email負(fù)責(zé)構(gòu)造郵件,smtplib負(fù)責(zé)發(fā)送郵件;Smtplib是關(guān)于 SMTP(簡單郵件傳輸協(xié)議)的操作模塊,在發(fā)送郵件的過程中,起到服務(wù)器之間互相通信的作用;Email是用來設(shè)置服務(wù)器之間通信的信息,包括信息頭、信息主體等等;用腳本發(fā)郵件時(shí),需要先打開自己郵箱的 SMTP 功能,各家郵箱的設(shè)置方法不同,可自行百度;
發(fā)郵件流程圖剖析:
腳本實(shí)現(xiàn)發(fā)送郵件
這里我只介紹python腳本發(fā)送郵件,具體參考下面代碼,關(guān)鍵部分已經(jīng)注釋:
# -*- coding: utf-8 -*- ''' @author: Leo @software: pycharm @file: 111.py @time: 2020/4/26 0026 1:13 @Desc: ''' __author__ = 'Leo' # -*- coding: utf-8 -*- ''' @author: Leo @software: pycharm @file: send_email.py @time: 2020/4/25 0025 22:02 @Desc: ''' __author__ = 'Leo' # 導(dǎo)入發(fā)送郵件模塊:smtplib import smtplib # 導(dǎo)入構(gòu)造郵件模塊:MIMEText from email.mime.text import MIMEText class SendEmail(object): """ 發(fā)送郵件模塊 """ def __init__(self): """ 初始化郵件配置服務(wù) """ self.send_user = '###' self.mail_host = 'smtp.163.com' self.password = '###' def send_mail(self,user_lists,subject,content): """ 執(zhí)行發(fā)送郵件 """ user = "發(fā)件人名稱" + "<" + self.send_user + ">" message = MIMEText(content,_subtype="plain",_charset="utf8") message['Subject'] = subject message['From'] = user message['To'] = ";".join(user_lists) try: server = smtplib.SMTP() server.connect(self.mail_host) server.login(self.send_user,self.password) # as_string將MIMEText對(duì)象轉(zhuǎn)成str server.sendmail(user,user_lists,message.as_string()) server.close() print("郵件發(fā)送成功".center(60,'=')) except: print("郵件發(fā)送失敗".center(60,'=')) raise def send_content(self,data): """ 發(fā)送郵件內(nèi)容 """ pass_cases_nums = int(len(data['pass_cases'])) print("用例執(zhí)行成功數(shù):%s"%pass_cases_nums) fail_cases_nums = int(len(data['fail_cases'])) print("用例執(zhí)行失敗數(shù):%s"%fail_cases_nums) not_execute_nums = int(len(data['not_execute_cases'])) print("用例未執(zhí)行數(shù):%s" % fail_cases_nums) execute_num = float(pass_cases_nums + fail_cases_nums) total_cases = float(pass_cases_nums + fail_cases_nums + not_execute_nums) pass_ratio = "%.2f%%" % (pass_cases_nums / total_cases * 100) fail_ratio = "%.2f%%" % (fail_cases_nums / total_cases * 100) user_lists = ['###'] subject = "【接口自動(dòng)化測(cè)試用例執(zhí)行統(tǒng)計(jì)】" content = "一共 %f 個(gè)用例, 執(zhí)行了 %f 個(gè)用例,未執(zhí)行 %f 個(gè)用例;成功 %f 個(gè),通過率為 %s;失敗 %f 個(gè),失敗率為 %s" % (total_cases, execute_num, not_execute_nums, pass_cases_nums, pass_ratio, fail_cases_nums, fail_ratio) self.send_mail(user_lists, subject, content) if __name__ == '__main__': sm = SendEmail() sm.send_content({'pass_cases':[1, 3, 5],'fail_cases':[2, 4, 6],'not_execute_cases':[1, 2, 3]})
運(yùn)行程序:
結(jié)果:
以上就是關(guān)于如何實(shí)現(xiàn)Python發(fā)送郵件封裝的內(nèi)容,如果你們有學(xué)習(xí)到知識(shí)或者技能,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。