直接pip install 安装相关包,补全发送邮件 / 接收邮件即可实现邮件发送功能
代码实现
# coding=utf-8
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart
def send_mail(self, html_path):
"""
发送邮件
:param html_path: 附件路径
"""
times = time.strftime('%Y-%m-%d %X', time.localtime())
# 163服务器格式
# smtpsv = '' # 发送邮件服务器
# user = '' # 用户名
# pwd = '' # 密码
# 阿里服务器格式
smtpsv = '' # 邮件服务器
user = '' # 用户名
pwd = '' # 密码
# 发送邮箱
sender = ''
# 接收邮箱
receiver = ''
# 发送邮件主题
subject = '自动化测试报告'
# 邮件中含有附件
msg = MIMEMultipart()
# 正文内容
content = '接口自动化测试结果:\n\
共计:{}个;通过: {}个;失败: {}个;未执行: {}个;通过率: {}%;失败率: {}%\n\
测试结果见附件'.format(10, 6, 2, 2, 6/10*100, 2/10*100)
# print(content)
# 编写HTML类型的邮件正文
msg.attach(MIMEText(content, 'plain', 'utf-8'))
msg['Subject'] = Header(subject, 'utf-8')
msg['from'] = sender
msg['to'] = receiver
# 附件
att = MIMEText(open(html_path, 'rb').read(), 'base64', 'utf-8')
att["Content-Type"] = 'application/octet-stream'
att['Content-Disposition'] = 'attachment;filename="%s.xlsx"' % (times, )
msg.attach(att)
try:
# 连接发送邮件
smtp = smtplib.SMTP()
smtp.connect(smtpsv)
smtp.login(user, pwd)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()
except Exception as e:
# 将报错内容写入日志中
print(e)
执行效果图
补充说明
由于邮件正文是写的固定值,在实际使用过程中,将对应值传递过来后再处理下即可