首页 > 编程语言 >python中发送测试报告邮件

python中发送测试报告邮件

时间:2023-08-02 18:05:57浏览次数:39  
标签:sender python smtp attachment msg path email 邮件 测试报告

要在Python中发送测试报告邮件,可以使用smtplibemail库来实现。以下是简单的代码,以qq邮箱为例,注:邮箱密码得事先申请,如下:

python中发送测试报告邮件_测试报告

python中发送测试报告邮件_邮件发送_02

先开启服务,之后再申请(需绑定一手机号)

python中发送测试报告邮件_测试报告_03

代码如下:

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
from untitled.API_Auto3.tools.project_path import * #此处是自己写的一个路径获取类

class sendEmail:
    def send_email(self,sender_email, sender_password, receiver_email, subject, body, attachment_path=None):
        try:
            # 设置邮件服务器和端口(这里以QQ邮箱为例)
            smtp_server = 'smtp.qq.com'
            smtp_port = 587

            # 邮件内容设置
            msg = MIMEMultipart()#创建实例:多个部分
            msg['From'] = sender_email
            msg['To'] = receiver_email
            msg['Subject'] = Header(subject, 'utf-8')

            # 邮件正文
            msg.attach(MIMEText(body, 'plain', 'utf-8'))

            # 附件,只能发一个附件
            if attachment_path:
                with open(attachment_path, 'rb') as f:
                    attachment = MIMEText(f.read(), 'base64', 'utf-8')
                    attachment['Content-Type'] = 'application/octet-stream'
                    attachment.add_header('Content-Disposition', 'attachment', filename=('utf-8', '', attachment_path.split('/')[-1]))
                    msg.attach(attachment)

            # 建立SMTP连接
            smtp = smtplib.SMTP(smtp_server, smtp_port)#如果使用SMTP_SSL()方法时,注意smtp_port的修改
            smtp.starttls()  # 使用TLS加密连接

            # 登录邮箱
            smtp.login(sender_email, sender_password)

            # 发送邮件
            smtp.sendmail(sender_email, receiver_email, msg.as_string())

            # 关闭SMTP连接
            smtp.quit()

            print("邮件发送成功")
        except Exception as e:
            print("邮件发送失败:", e)

if __name__ == "__main__":
    import time
    sender_email = '[email protected]'
    sender_password = 'your_sender_email_password'
    receiver_email = '[email protected]'
    subject = time.strftime('%Y-%m-%d_%H_%M_%S')+'测试报告'
    body = '该文件为测试报告,请查收!'
    attachment_path =test_report_path   # 如果有附件,请提供附件的路径

    a =sendEmail()
    a.send_email(sender_email, sender_password, receiver_email, subject, body, attachment_path)


标签:sender,python,smtp,attachment,msg,path,email,邮件,测试报告
From: https://blog.51cto.com/u_15966957/6940860

相关文章

  • python3 番外篇之Linux环境安装问题
    问题一、Linux主机openSSL版本较老[root@zabbix-serveralertscripts]#python3feishu.pyTraceback(mostrecentcalllast):File"feishu.py",line3,in<module>importrequestsFile"/usr/local/python3.8/lib/python3.8/site-packages/reque......
  • Python-入门
    介绍Python (python.org)LearnXinYminutes (learnxinyminutes.com)Regexinpython (jaywcjlove.github.io)helloword>>>print("Hello,World!")Hello,World!Python中著名的“HelloWorld”程序变量age=18#年龄是int类型name="John"#nam......
  • Python 字符串
    类数组>>>hello="Hello,World">>>print(hello[1])e>>>print(hello[-1])d获取位置 1 或最后的字符循环>>>forcharin"foo":...print(char)foo遍历单词 foo 中的字母切片字符串┌───┬───┬───┬───┬───┬───┬───┐|m|y|b|......
  • 【python_1】第一个python程序!
    打开CMD(命令提示符)程序,输入python并回车;输入:print("HelloWorld!")然后回车;print代表的是打印输出的意思;这段代码的含义就是:在屏幕上输出引号内的内容。代码中使用的符号()""必须是英文符号。持续更新【python】系列!有需要的请移步秃头程序媛!......
  • python开发实战——ip池
    前言代理IP池是一组可用的代理IP地址,用于访问网站或执行其他网络请求。它可以帮助我们在网络请求时隐藏我们的真实IP地址,从而提高网络安全性、匿名性和稳定性。同时,代理IP池还可以通过定时更新和测试代理IP,保证代理IP的有效性和稳定性。本文将介绍如何使用Python编写代理IP池,包括......
  • # yyds干货盘点 # 盘点一个Python递归的基础题目
    大家好,我是皮皮。一、前言前几天在Python黄金群【维哥】问了一个Python递归的基础问题,一起来看看吧。看上去代码没多少哈,但是韵味无穷。二、实现过程很多初学者遇到这个问题,很容易把答案说成是3,2,2这样,其实正好相反,这里【巭孬嫑勥烎】给了一个解释。这么一看好像还是不太好理解,看看......
  • 软件测试报告的作用在哪?
    软件测试报告是测试工作的重要成果之一,它是测试人员向项目团队和相关利益相关者传递测试结果和评估软件质量的文档。软件测试报告具有以下几个重要作用:1、向项目团队和管理层提供测试结果软件测试报告会详细汇报测试的执行情况、测试用例覆盖的范围、发现的缺陷和问题等信......
  • 盘点一个Python递归的基础题目
    大家好,我是皮皮。一、前言前几天在Python黄金群【维哥】问了一个Python递归的基础问题,一起来看看吧。看上去代码没多少哈,但是韵味无穷。二、实现过程很多初学者遇到这个问题,很容易把答案说成是3,2,2这样,其实正好相反,这里【巭孬嫑勥烎】给了一个解释。这么一看好像还是不太好......
  • GIL锁;python垃圾回收机制;计算密集型用多进程,io密集型用多线程
    GIL锁;python垃圾回收机制;计算密集型用多进程,io密集型用多线程GIL锁及其作用1.GIL(GlobalInterpreterLock)又称全局解释器锁,本质就是一个互斥锁。2.它保证了cpython进程中的每个线程必须获得这把锁才能执行,不获得不能执行3.这样使得在同一进程内任何时刻仅有一个线程在执行。4......
  • python: Screen Recording
     用VLCmediaplayer播放录屏文件"""python.exe-mpipinstall--upgradepippipinstallpyautoguipipinstallopencv-pythonpipinstallpywin32python3.11"""#ThisisasamplePythonscript.importcv2importpyautoguiimport......