溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么使用python將最新的測(cè)試報(bào)告以附件的形式發(fā)到指定郵箱

發(fā)布時(shí)間:2021-04-27 12:47:24 來源:億速云 閱讀:163 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下怎么使用python將最新的測(cè)試報(bào)告以附件的形式發(fā)到指定郵箱,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

python主要應(yīng)用領(lǐng)域有哪些

1、云計(jì)算,典型應(yīng)用OpenStack。2、WEB前端開發(fā),眾多大型網(wǎng)站均為Python開發(fā)。3.人工智能應(yīng)用,基于大數(shù)據(jù)分析和深度學(xué)習(xí)而發(fā)展出來的人工智能本質(zhì)上已經(jīng)無法離開python。4、系統(tǒng)運(yùn)維工程項(xiàng)目,自動(dòng)化運(yùn)維的標(biāo)配就是python+Django/flask。5、金融理財(cái)分析,量化交易,金融分析。6、大數(shù)據(jù)分析。

具體代碼如下所示:

import smtplib, email, os, time
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
#設(shè)置smtplib所需的參數(shù)
smtpserver = 'smtp.qq.com' #SMTP服務(wù)器地址
username = 'xxx@qq.com' # 發(fā)件人地址,通過控制臺(tái)創(chuàng)建的發(fā)件人地址
password = '******' # 發(fā)件人密碼,通過控制臺(tái)創(chuàng)建的發(fā)件人密碼
receiver = ['xxx@dadaodata.com'] #單個(gè)收件人
# receivers = ['xxx@dadaodata.com', 'xxx@qq.com'] # 收件人地址或是地址列表,支持多個(gè)收件人,最多30個(gè)
# 構(gòu)造郵件MIMEMultipart對(duì)象
msg = MIMEMultipart('mixed')
msg['Subject'] = Header('自動(dòng)化測(cè)試報(bào)告' + time.strftime("%Y-%m-%d"), 'utf-8').encode()#自定義郵件主題
msg['From'] = '%s <%s>' % (username, username)#郵件發(fā)送者
msg['To'] = ";".join(receiver)#郵件接受者
msg['Message-id'] = email.utils.make_msgid()
msg['Date'] = email.utils.formatdate()
# 構(gòu)造文字內(nèi)容
text_plain = MIMEText('附件為接口自動(dòng)化測(cè)試報(bào)告,請(qǐng)查收!', 'plain', 'utf-8')#郵件內(nèi)容
msg.attach(text_plain)
#構(gòu)造附件
test_report = r'F:\PythonAutomation\Python_PyCharm\TestReport' #存放文件的目錄
lists = os.listdir(test_report) #列出目錄的下所有文件保存到lists
lists.sort(key=lambda fn:os.path.getmtime(test_report + "\\" + fn)) #按時(shí)間排序
file_new = os.path.join(test_report,lists[-1]) #獲取最新的文件保存到file_new
sendfile = open(file_new,'rb').read()
text_att = MIMEText(sendfile, 'base64', 'utf-8')
text_att["Content-Type"] = 'application/octet-stream'
text_att["Content-Disposition"] = 'attachment; filename="report.html"'#重新命名附件
msg.attach(text_att)
# 發(fā)送郵件
try:
  # client = smtplib.SMTP()
  # client.connect(smtpserver, 25) #SMTP普通端口為25
  client = smtplib.SMTP_SSL() #python 2.7以上版本,若需要可使用SSL
  client.connect(smtpserver, 465) #SSL端口465
  # client.set_debuglevel(1) #用set_debuglevel(1)可以打印出和SMTP服務(wù)器交互的所有信息
  client.login(username, password)
  client.sendmail(username, receiver, msg.as_string())
  client.quit()
  print('郵件發(fā)送成功')
except smtplib.SMTPConnectError as e:
  print('郵件發(fā)送失敗,連接失敗:', e.smtp_code, e.smtp_error)
except smtplib.SMTPAuthenticationError as e:
  print('郵件發(fā)送失敗,認(rèn)證錯(cuò)誤:', e.smtp_code, e.smtp_error)
except smtplib.SMTPSenderRefused as e:
  print('郵件發(fā)送失敗,發(fā)件人被拒絕:', e.smtp_code, e.smtp_error)
except smtplib.SMTPRecipientsRefused as e:
  print('郵件發(fā)送失敗,收件人被拒絕:', e.args, e.recipients)
except smtplib.SMTPDataError as e:
  print('郵件發(fā)送失敗,數(shù)據(jù)接收拒絕:', e.smtp_code, e.smtp_error)
except smtplib.SMTPException as e:
  print('郵件發(fā)送失敗: ', str(e))
except Exception as e:
  print('郵件發(fā)送失敗: ', str(e))

執(zhí)行結(jié)果如下:

怎么使用python將最新的測(cè)試報(bào)告以附件的形式發(fā)到指定郵箱

看完了這篇文章,相信你對(duì)“怎么使用python將最新的測(cè)試報(bào)告以附件的形式發(fā)到指定郵箱”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI