使用python将最新的测试报告以附件的形式发到指定邮箱

具体代码如下所示:

import smtplib, email, os, time
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
#设置smtplib所需的参数
smtpserver = 'smtp.qq.com' #SMTP服务器地址
username = 'xxx@qq.com' # 发件人地址,通过控制台创建的发件人地址
password = '******' # 发件人密码,通过控制台创建的发件人密码
receiver = ['xxx@dadaodata.com'] #单个收件人
# receivers = ['xxx@dadaodata.com', 'xxx@qq.com'] # 收件人地址或是地址列表,支持多个收件人,最多30个
# 构造邮件MIMEMultipart对象
msg = MIMEMultipart('mixed')
msg['Subject'] = Header('自动化测试报告' + time.strftime("%Y-%m-%d"), 'utf-8').encode()#自定义邮件主题
msg['From'] = '%s <%s>' % (username, username)#邮件发送者
msg['To'] = ";".join(receiver)#邮件接受者
msg['Message-id'] = email.utils.make_msgid()
msg['Date'] = email.utils.formatdate()
# 构造文字内容
text_plain = MIMEText('附件为接口自动化测试报告,请查收!', 'plain', 'utf-8')#邮件内容
msg.attach(text_plain)
#构造附件
test_report = r'F:\PythonAutomation\Python_PyCharm\TestReport' #存放文件的目录
lists = os.listdir(test_report) #列出目录的下所有文件保存到lists
lists.sort(key=lambda fn:os.path.getmtime(test_report + "\\" + fn)) #按时间排序
file_new = os.path.join(test_report,lists[-1]) #获取最新的文件保存到file_new
sendfile = open(file_new,'rb').read()
text_att = MIMEText(sendfile, 'base64', 'utf-8')
text_att["Content-Type"] = 'application/octet-stream'
text_att["Content-Disposition"] = 'attachment; filename="report.html"'#重新命名附件
msg.attach(text_att)
# 发送邮件
try:
  # client = smtplib.SMTP()
  # client.connect(smtpserver, 25) #SMTP普通端口为25
  client = smtplib.SMTP_SSL() #python 2.7以上版本,若需要可使用SSL
  client.connect(smtpserver, 465) #SSL端口465
  # client.set_debuglevel(1) #用set_debuglevel(1)可以打印出和SMTP服务器交互的所有信息
  client.login(username, password)
  client.sendmail(username, receiver, msg.as_string())
  client.quit()
  print('邮件发送成功')
except smtplib.SMTPConnectError as e:
  print('邮件发送失败,连接失败:', e.smtp_code, e.smtp_error)
except smtplib.SMTPAuthenticationError as e:
  print('邮件发送失败,认证错误:', e.smtp_code, e.smtp_error)
except smtplib.SMTPSenderRefused as e:
  print('邮件发送失败,发件人被拒绝:', e.smtp_code, e.smtp_error)
except smtplib.SMTPRecipientsRefused as e:
  print('邮件发送失败,收件人被拒绝:', e.args, e.recipients)
except smtplib.SMTPDataError as e:
  print('邮件发送失败,数据接收拒绝:', e.smtp_code, e.smtp_error)
except smtplib.SMTPException as e:
  print('邮件发送失败: ', str(e))
except Exception as e:
  print('邮件发送失败: ', str(e))

执行结果如下:

总结

以上所述是小编给大家介绍的使用python将最新的测试报告以附件的形式发到指定邮箱,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • python实现QQ邮箱/163邮箱的邮件发送

    QQ邮箱/163邮箱的邮件发送:py文件发送邮件内容相当于一个第三方的客户端,借助于QQ/163邮箱服务器来发送的邮件. 主要配置: 导入模块--import    smtplib 邮箱SMTP服务器的主机地址,HOST--将来使用这个服务器收发邮件. 配置服务器端口,PORT --默认的邮件端口是25(QQ邮箱是:465) 指定发件人和收件人,(FROM.TO)--发件人只有一个,收件人有多个,收件人格式:'邮箱1,邮箱2,...' 邮件标题(SUBJECT) 邮件内容(CONTENT) 邮箱

  • Python利用QQ邮箱发送邮件的实现方法(分享)

    废话不多说,直接上代码 Python2.7 #!/usr/bin/env python2.7 # -*- coding=utf-8 -*- import smtplib from email.mime.text import MIMEText _user = "648613081@qq.com" _pwd = "这里改成你的授权码" _to = "648613081@qq.com" msg = MIMEText("this is a e

  • 浅谈Python用QQ邮箱发送邮件时授权码的问题

    QQ邮箱最新推出了一个授权码,需已验证的手机号向QQ邮箱服务器发送一条短信获得.该授权码用于第三方客户端登录,代替了第三方登录时使用的个人邮箱密码. 在测试过程中遇到两个问题: 1.提示需建立SSL安全连接.于是将smtplib.SMTP() 改成了smtplib.SMTP_SSL() 2.运行代码后,程序一直运行,但没有任何反应,等了五分钟左右,最后只好ctrl+c停止.查原因才知道,QQ邮箱的SMTP服务端口不是默认的25.改为465之后就好了. (使用标准的25端口连接SMTP服务器时,使

  • Python使用QQ邮箱发送Email的方法实例

    前言 其实Python使用QQ邮箱发送Email代码很简单,短短几行代码就可以实现这个功能. 使用到的模块有smtplib和email这个两个模块,关于这两个模块的方法就不多说了.不了解的朋友们可以查看这篇文章:python中使用smtplib和email模块发送邮件实例 我们先说说网上常用的使用这那两个模块发送邮件的方法 代码如下: import smtplib from email.mime.text import MIMEText from email.header import Head

  • python3+selenium实现qq邮箱登陆并发送邮件功能

    本文实例为大家分享了python3实现qq邮箱登陆并发送邮件功能的具体代码,供大家参考,具体内容如下 基于selenium,使用chrome浏览器,完成qq邮箱登陆并发送发邮件功能,暂时未封装.qq邮箱和126邮箱登陆还是有一些区别的. #encoding=utf-8 from selenium import webdriver import time #启动chrome浏览器 driver = webdriver.Chrome() #进入qq邮箱登陆首页 driver.get("https:/

  • python3实现163邮箱SMTP发送邮件

    SMTP协议 首先了解SMTP(简单邮件传输协议),邮件传送代理程序使用SMTP协议来发送电邮到接收者的邮件服务器.SMTP协议只能用来发送邮件,不能用来接收邮件,而大多数的邮件发送服务器都是使用SMTP协议.SMTP协议的默认TCP端口号是25. 发送邮件之前的配置: 上面说了是使用SMTP协议发送的邮件,所以需要先查看你的发件人邮箱是否有开启SMTP协议,如没有,则需要开启,我测试使用的是163.com的邮箱作为发信人邮箱,在设置中开启SMTP协议如下图所示.   测试的前提是你需要开通客户

  • Python发送邮件功能示例【使用QQ邮箱】

    本文实例讲述了Python发送邮件功能.分享给大家供大家参考,具体如下: 这里以QQ邮箱为例说明 登录邮箱点账号 开启smtp 开启时会要求你发送一条短信,发送完成后点已发送. 就有授权码了 代码如下,只需更改发件人.收件人等信息即可 # encoding: utf-8 import logging import smtplib from email.mime.text import MIMEText import email.utils from datetime import datetim

  • Python实现给qq邮箱发送邮件的方法

    本文实例讲述了Python实现给qq邮箱发送邮件的方法.分享给大家供大家参考.具体实现方法如下: #-*-coding:utf-8-*- #========================================== # 导入smtplib和MIMEText #========================================== from email.mime.text import MIMEText import smtplib #===================

  • python3+selenium实现126邮箱登陆并发送邮件功能

    本文实例为大家分享了python3实现126邮箱登陆并发送邮件的具体代码,供大家参考,具体内容如下 基于selenium,使用chrome浏览器,完成126邮箱登陆并发送发邮件功能,暂时未封装. from selenium import webdriver # 导入显示等待类 from selenium.webdriver.support.ui import WebDriverWait # 导入期望场景类 from selenium.webdriver.support import expect

  • 使用python将最新的测试报告以附件的形式发到指定邮箱

    具体代码如下所示: import smtplib, email, os, time from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.header import Header #设置smtplib所需的参数 smtpserver = 'smtp.qq.com' #SMTP服务器地址 username = 'xxx@qq.com' # 发件人地址,通过控制台创

  • python实现定时发送邮件到指定邮箱

    本文实例为大家分享了python实现定时发送邮件到指定邮箱的具体代码,供大家参考,具体内容如下 整个链路:传感器采集端采集数据,边缘端上传数据库,从数据库拿到数据. 产品端有个自动出报告的需求,并且希望自动出的报告可以定时通过邮件发到指定邮箱中. 自动发邮件中也有较多坑,本文特此记录自动发邮件中的坑. 使用:Python3.7,win10系统,163邮箱作为发邮件方,QQ邮箱作为收邮件方. **第一步:**申请两个账号分别作为发送和接收的账号,本文用的是一个163邮箱,一个是qq邮箱. 第一个坑

  • python pycharm最新版本激活码(永久有效)附python安装教程

    PyCharm 是一款功能强大的 Python 编辑器,具有跨平台性,鉴于目前最新版 PyCharm 使用教程较少,为了节约时间,来介绍下python pycharm最新版本激活码,本文给大家介绍两种激活方法,小编在这里推荐激活方法二,几乎永久免费. Mac 系统自带python 1.打开终端, 输入 python 可以查看python当前版本. 2.输入"python"回车后即进入解释器,例如打印"hello world!", 可输入 ' print 'hello

  • python Windows最新版本安装教程

    目录 1.官网下载地址 2.打开exe安装 3.是否安装成功 1.官网下载地址 在官网找到你想安装的版本 官网地址:https://www.python.org/并且选择下载windows版本 目前最新的版本是3.10.1,在稳定版中下拉选择一个你想要的版本,直接下载installer即可,我下载的是最新版本.(如果你的电脑是win7或者XP系统,就需要下载旧一点的版本了,他上面也有提示) 如果下载很慢的话,可以打开手机热点,电脑连接手机热点后再重新下载,速度应该会有所提升.或者使用国内镜像:h

  • 基于Python实现最新房价信息的获取

    整个数据获取的信息是通过房源平台获取的,通过下载网页元素并进行数据提取分析完成整个过程 导入相关的网页下载.数据解析.数据处理库 from fake_useragent import UserAgent # 身份信息生成库 from bs4 import BeautifulSoup # 网页元素解析库 import numpy as np # 科学计算库 import requests # 网页下载库 from requests.exceptions import RequestExceptio

  • Python免费试用最新Openai API的步骤

    目录 一.背景介绍 二.API申请 三.Python使用API 一.背景介绍 3月2日凌晨,OpenAI放出了真正的ChatGPT API,不是背后的GPT-3.5大模型,是ChatGPT的本体模型!ChatGPT API价格为1k tokens/$0.002,等于每输出100万个单词,价格才2.7美金(约18元人民币),比已有的GPT-3.5模型便宜10倍. 这将大大降低开发人员将ChatGPT集成到自家应用和服务的门槛,构建属于自己的AI聊天机器人.而且OpenAI将ChatGPT从去年12

  • Python利用itchat库向好友或者公众号发消息的实例

    首先获得好友或者公众号的UserName 1. 获取好友UserName #coding=utf8 import itchat itchat.auto_login(hotReload=True) #想给谁发信息,先查找到这个朋友,name后填微信备注即可,deepin测试成功 users = itchat.search_friends(name='') #获取好友全部信息,返回一个列表,列表内是一个字典 print(users) #获取`UserName`,用于发送消息 userName = u

  • python中的selenium实现自动向下滚动页面并指定最大滑动距离

    需要selenium控制的chrome向下滑动,自动加载一些内容,核心代码是: browser.execute_script("window.scrollBy(0,300)") 这行可以向下滑动300个像素 需要的工具函数如下: def roll_window_to_bottom(browser, stop_length=None, step_length=500):     """selenium 滚动当前页面,向下滑     :param browse

  • python使用imap-tools模块下载邮件附件的示例

    最近在做一些email相关的办公自动化项目,发现一个第三方模块imap-tools不错, 网上没有啥相关介绍,所以记录下来. 环境: python3.8; imap-tools 0.39.0 需要pip 安装一下imap-tools模块 imap-tools模块是python的第三方扩展, 它使用标准库imaplib,并将常见的邮件处理事件封装,邮件处理起来代码短. 下面是个下载邮件附件的示例 from imap_tools import MailBox with MailBox("imap服务

  • Python实现Smtplib发送带有各种附件的邮件实例

    这两天对Python的邮件模块比较感兴趣,于是就查了查资料.同时在实际的编码过程中也遇到了各种各样的问题.下面我就来分享一下我与smtplib的故事. 前提条件 我的上一篇博文里面讲解了,发送邮件必须的条件.这里同样是适用的.大致就是要开启邮箱的SMPT/POP服务等等. 核心知识点 因为今天主要讲解的是如何发送带有附件的邮件,那么核心肯定是附件了.怎么才能发附件呢? 其实我们换个思路,就不难理解了.因为我们发送邮件,经过了应用层–>> 传输层–>> 网络层–>>数据链

随机推荐