當測試報告生成之后,可能需要對測試報告進行以郵件形式的發送。
具體代碼為:
1 # coding=utf-8 2 import smtplib #發送郵件模塊 3 from email.mime.text import MIMEText #定義郵件內容 4 from email.header import Header #定義郵件標題 5 6 #發送郵件服務器 7 smtpserver='smtp.qq.com' 8 9 #發送郵箱用戶名和密碼 10 user='****@qq.com' 11 password='************' 12 mail_pass='**********' 13 14 #發送和接收郵箱 15 sender='************@qq.com' 16 receive='************@qq.com' 17 18 # 發送郵件主題和內容 19 subject='Web Selenuim 自動化測試報告' 20 21 #HTML郵件正文 22 file_new='D:\\python\\venv\\result2018-05-25-17_25_55.html' 23 f = open(file_new,'rb') 24 mail_body = f.read() 25 f.close() 26 msg=MIMEText(mail_body,'html','utf-8') 27 msg['subject']=Header(subject,'utf-8') 28 msg['From']='************@qq.com' 29 msg['To']='************@qq.com' 30 31 #SSL協議端口號要使用465 32 smtp=smtplib.SMTP_SSL(smtpserver,465) 33 34 #向用戶標識用戶身份 35 smtp.helo(smtpserver) 36 #服務器返回結果確認 37 smtp.ehlo(smtpserver) 38 #登錄郵箱服務器用戶名和密碼 39 smtp.login(user,mail_pass) 40 41 42 print("Start send Email....") 43 smtp.sendmail(sender,receive,msg.as_string()) 44 smtp.quit() 45 print("Send Email end!")
發送郵箱地址與接收郵箱地址使用************進行代替。
一、在調試過程中出現報錯,如下:
QQ郵箱需使用授權碼作為專用密碼,登錄第三方客戶端,所以用原來的密碼會導致錯誤。按照鏈接中的提示,進入QQ郵箱設置頁面,開啟SMTP服務,發短信獲取授權碼。所以需獲取qq郵箱的授權碼,登陸時使用授權碼進行登陸。
二、建立SSL安全連接:
端口號要修改為465。
使用標准的25端口連接SMTP服務器時,使用的是明文傳輸,發送郵件的整個過程可能會被竊聽。要更安全地發送郵件,可以加密SMTP會話,實際上就是先創建SSL安全連接,然后再使用SMTP協議發送郵件。
發送結果: