#!/usr/bin/python3
import smtplib from email.mime.text import MIMEText from email.utils import formataddr from email.mime.multipart import MIMEMultipart import getcwd import os from Logs.log import log1 from framework.Base_Page import BasePage import time rq = time.strftime('%Y%m%d', time.localtime(time.time()))#獲取本地時間 轉換成日期
my_mail = BasePage(driver=1) sender = my_mail.config_get('email','sender') # 發件人郵箱帳號
password = my_mail.config_get('password','sender') # 發件人郵箱密碼
usernmae = my_mail.config_get('username','sender') #發件人姓名
users = my_mail.config_options('addressed') #收件人
addressed_eamils = my_mail.get_addkey(users) #收件人郵箱
path = getcwd.get_cwd() file = os.path.join(path, 'report/xxxUI自動化測試報告.html') def mail(): try: # 建立一個帶附件的實例
message = MIMEMultipart() message['From']=formataddr([usernmae,sender]) # 括號裏的對應發件人郵箱暱稱、發件人郵箱帳號
log1.info('發件人姓名:%s' % usernmae) log1.info('發件人郵箱:%s' % sender) message['To']=';'.join(addressed_eamils) # 括號裏的對應收件人郵箱暱稱、收件人郵箱帳號
log1.info('收件人郵箱:' + ';'.join(addressed_eamils)) message['Subject']=rq + "xxxUI自動化測試報告.html" # 郵件的主題,也能夠說是標題
# 郵件正文內容
message.attach(MIMEText('附件爲xxxUI自動化測試報告.html', 'plain', 'utf-8')) # 構造附件1,傳送當前目錄下的 test.txt 文件
att1 = MIMEText(open(file, 'rb').read(), 'base64', 'utf-8') log1.info('讀取附件') att1["Content-Type"] = 'application/octet-stream'
# 這裏的filename能夠任意寫,寫什麼名字,郵件中顯示什麼名字
att1.add_header("Content-Disposition", "attachment", filename=("gbk", "", "xxxUI自動化測試報告.html")) # 附件名稱非中文時的寫法
# att["Content-Disposition"] = 'attachment; filename="test.html")'
message.attach(att1) log1.info('添加附件') server = smtplib.SMTP_SSL("smtp.qq.com", 465) # 發件人郵箱中的SMTP服務器,端口是25
log1.info('鏈接QQ郵箱smtp服務') server.login(sender,password) # 括號中對應的是發件人郵箱帳號、郵箱密碼
log1.info('鏈接成功') server.sendmail(sender, addressed_eamils, message.as_string()) # 括號中對應的是發件人郵箱帳號、收件人郵箱帳號、發送郵件
server.quit() # 關閉鏈接
log1.info("郵件發送成功") except Exception: log1.error("郵件發送失敗",exc_info=1)