selenium 发送测试报告邮件

   import smtplib
   import time
import os
# MIME文本对象
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart
# 图片
from email.mime.image import MIMEImage
# 音频对象
from email.mime.audio import MIMEAudio
# MIME文件参考地址:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_Types

def sendReport(file_new):
    with open(file_new,'rb') as f:
            main_body = f.read()
    # 创建一个多个MIME对象的集合实例
    msg =  MIMEMultipart()
# 发送图片MIMEImage===============================================================================
    # attr1 = MIMEImage(main_body)
    # attr1['Content-Type'] = 'application/octet-stream'
    # attr1['Content-Disposition'] = 'attchment;filename = "1.png"'
    # msg.attach(attr1)

# 发送附件(MIMEText)html,txt,jpg======================================================================
    att2 = MIMEText(main_body, 'base64', 'utf-8')
    # 这是应用程序文件的默认值。意思是 未知的应用程序文件 ,浏览器一般不会自动执行或询问执行。浏览器会像对待 设置了HTTP头Content-Disposition 值为 attachment 的文件一样来对待这类文件。
    att2["Content-Type"] = 'application/octet-stream'
    att2["Content-Disposition"] = 'attachment; filename="%s" ' %file_new
    msg.attach(att2)

# 发送音频对象-MIMEAudio=========================================================================
    # attr3 = MIMEAudio(main_body,'mp4')
    # attr3['Content-Type'] = 'application/octet-stream'
    # attr3['Content-Disposition'] = 'attchment;filename = "%s"' %file_new
    # msg.attach(attr3)

# 邮箱正文内容
	msg.attach(MIMEText('这是%s的测试报告' % time_format()))
# 创建邮箱标题
    msg['Subject'] = Header('自动化测试报告', 'utf-8')
    msg['From'] = 'cherryxxxx@sina.com'
    msg['To'] = 'cherryxxxxx@sina.com;xxxxxx@qq.com'

    try:
        # 这是发送邮件服务。
        # ===========================================================================================
        # # 第一种普通加密
        # s = smtplib.SMTP('smtp.sina.com', 25)
        # 第二种,安全性较高,SMTP_SSL方法
        s =smtplib.SMTP_SSL('smtp.sina.com',465)
        # 第三种tls加密方式,通信过程加密,邮件数据安全,使用正常的smtp端口
        # s = smtplib.SMTP('smtp.sina.com', 25)
        # s.set_debuglevel(True)
        # s.ehlo()
        # s.starttls()
        # s.ehlo()
        # ========================================================================================
        # 输入登录名和密码
        s.login('cherryxxxx@sina.com','xxxx')
        # .as_string()将msg转化为字符串
        s.sendmail(msg['From'],msg['To'].split(';'),msg.as_string())
        # 退出登录
        s.quit()
        print('%s--邮件发送成功' % time.strftime('%Y-%m-%d %H%M%S',time.localtime()))

    except Exception as e:
        print('发送失败')
        print(e)

# 设置时间格式
def time_format():
    current_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
    return current_time

#查找测试报告目录,找到最新生成的测试报告
def latestReport(testReport):
    lists = os.listdir(testReport)
    # 获得按升序排列的测试报告列表
    lists2 = sorted(lists)
    # 获得最后一个即最新的一个测试报告
    file_new = os.path.join(testReport,lists2[0])
    print(file_new)
    return file_new

if __name__ == '__main__':
    report_dir = r'D:\\report'
    latest_report = latestReport(report_dir)
    sendReport(latest_report)

 (1)Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件
 (2)构造MIMEText对象时,第一个参数是邮件正文;第二个参数是MIME的subtype,传入’plain’表示纯文本,最终的MIME就是’text/plain’;最后一定要用utf-8编码保证多语言兼容性
 (3)发送的邮件需要添加头部信息,头部信息中包含发送者、接收者、邮件主题等信息:message[‘From’]、message[‘To’]、message[‘Subject’]
 (4)构造完要发送的邮件信息后,通过SMTP发出去:login()方法用来登录SMTP服务器;sendmail()方法就是发邮件,由于可以一次发给多个人,所以传入一个list;邮件正文是一个str,as_string()把MIMEText对象变成str
 (5)SMTP.quit():关闭SMTP服务器连接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值