1、配置邮件信息,配置为yaml文件
email_data.yaml
'foremail'='XXXXX'
'password'='XXXXX'
‘toemail'='XXXX’
''title'='XXXX'
2、邮件设置及发送
import smtplib,time,os
from email.mime.text import MIMEText
from email.utils import formataddr,parseaddr
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
'''
获取配置信息
设置邮件信息
设置附件
设置邮件正文
将正文和附件加载到邮件中
发送邮件'''
def load_emil_setting():#从配置文件中加载获取email的相关信息
import yaml
data_file = open(r"..\\config\\email.yaml","r")
datas = yaml.load(data_file)
data_file.close()
return (datas['foremail'],datas['password'],datas['toeamil'],datas['title'])
def sendemali(filepath): #发送email
from_addr,password,mail_to,mail_body=load_emil_setting()
#设置邮件信息
msg = MIMEMultipart()
msg['Subject'] = '接口自动化测试报告' #邮件主题
msg['From'] ='自动化测试平台' #发送者名称
msg['To'] = mail_to #接收者地址
msg['Date'] = time.strftime('%a, %d %b %Y %H:%M:%S %z') #发送时间
#设置附件
att = MIMEText(open(r'%s'%filepath, 'rb').read(), 'base64', 'utf-8') #打开文件
att["Content-Type"] = 'application/octet-stream' #用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件
att["Content-Disposition"] = 'attachment; filename="pyresult.html"' #文件描述,filename为定义文件名
#邮件正文
txt = MIMEText("这是测试报告的邮件,详情见附件",'plain','gb2312')
#将正文和附件加载到邮件中
msg.attach(txt)
msg.attach(att)
#发送邮件
smtp = smtplib.SMTP()
server = smtplib.SMTP_SSL("smtp.qq.com",465) #邮件服务器地址
server.login(from_addr, password) #登录邮箱,qq邮箱密码为授权码
server.sendmail(from_addr, mail_to, msg.as_string()) #发送邮件
server.quit()