自动化测试基础篇--Selenium发送测试报告邮件
来自:https://www.cnblogs.com/sanzangTst/p/8377870.html
发邮件需要用到python两个模块,smtplib和email,这俩模块是python自带的,只需import即可使用。smtplib模块主要负责发送邮件,email模块主要负责构造邮件。其中MIMEText()定义邮件正文,Header()定义邮件标题。MIMEMulipart模块构造带附件。
Selenium发送邮件流程:

一、网易邮箱
Selenium发送邮件步骤:
1、导入smtplib和email模块;
2、准备发邮件的参数,每个邮箱的发件服务器都不一样,以163为例,百度搜到发件服务器为:smtp.163.com;
3、接下来就是写邮件的主题和正文内容,正文这里用html格式的;
4、最后调用发件服务。

5、参考代码

import smtplib
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart # 以yeah邮箱为例
# ----------------发件相关参数----------------
smtpserver = 'smtp.163.com'
port = 0
sender = 'sanzang520@yeah.net'
password = 'xxxxxxxxxxxx'
receicer = 'sanzang520@126.com' # ----------------编辑邮件内容----------------
subject = '发送邮件测试'
body = '<p>发送邮件测试Test<p>'
msg = MIMEText(body, 'html', 'UTF-8')
msg['from'] = sender
msg['to'] = receicer
msg['subject'] = subject # ------------------发送邮件-----------------
smtp = smtplib.SMTP()
smtp.connect(smtpserver)
smtp.login(sender, password)
smtp.sendmail(sender, receicer, msg.as_string())
smtp.quit()

二、腾讯邮箱
Selenium发送邮件步骤:
1、导入smtplib和email模块;
2、腾讯邮箱是需要SSL认证的,找到QQ邮箱授权码,打开QQ邮箱-设置-账号-POP3开启服务-开启;
3、发验证短信获取授权码,照着提示发个短信,如何点我已发送,就会收到授权码;
4、收到授权码后复制,保存下来,这个就可以当QQ邮箱的密码;
5、接下来就是写邮件的主题和正文内容,正文这里用html格式的;
6、最后调用发件服务。

7、参考代码

import smtplib
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
# 以QQ邮箱为例
# ----------------发件相关参数----------------
smtpserver = 'smtp.qq.com'
port = 0
sender = '2215358510@qq.com'
password = '授权码'
receicer = 'sanzang520@126.com' # ----------------编辑邮件内容----------------
subject = '发送邮件测试'
body = '<p>发送邮件测试Test<p>'
msg = MIMEText(body, 'html', 'UTF-8')
msg['from'] = sender
msg['to'] = receicer
msg['subject'] = subject # ------------------发送邮件-----------------
smtp = smtplib.SMTP_SSL(smtpserver,port)
smtp.login(sender, password)
smtp.sendmail(sender, receicer, msg.as_string())
smtp.quit()

三、同时兼容网易类和腾讯类邮箱

四、多个收件人
1、把receiver参数改成list对象,单个多个都是可以收到的;
2、msg["to"]这个参数不能用list了,得先把receiver参数转化成字符串。

五、发送附件

六、参考代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author : chen
# @File : c.py
# @Software: PyCharm
import smtplib
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
# 同时兼容网易类和腾讯类邮箱
# ----------------发件相关参数----------------
smtpserver = 'smtp.qq.com'
port = 0
sender = '2215358510@qq.com'
password = '授权码'
receicer = ['sanzang520@126.com','sanzang520@yeah.net',] # ----------------编辑邮件内容----------------
subject = '发送邮件测试'
body = '<p>发送邮件测试Test<p>'
msg = MIMEText(body, 'html', 'UTF-8')
msg['from'] = sender
msg['to'] = ';'.join(receicer)
msg['subject'] = subject # 文字部分
part = MIMEText('TEST!!!')
msg.attach(part)
# 附件部分
#---xlsx类型附件---
part = MIMEApplication(open('D:\\test.xlsx','rb').read())
part.add_header('Content-Disposition', 'attachment', filename="test.xlsx")
msg.attach(part)
# jpg类型附件(png类型和jpg一样)
part = MIMEApplication(open('D:\\test.jpg','rb').read())
part.add_header('Content-Disposition', 'attachment', filename="test.jpg")
msg.attach(part)
# pdf类型附件
part = MIMEApplication(open('D:\\test.pdf','rb').read())
part.add_header('Content-Disposition', 'attachment', filename="test.pdf")
msg.attach(part)
# mp3类型附件
part = MIMEApplication(open('D:\\test.mp3','rb').read())
part.add_header('Content-Disposition', 'attachment', filename="test.mp3")
msg.attach(part)
# html类型
part = MIMEText('<html><h1>test!</h1></html>','html','utf-8')
msg.attach(part) # ------------------发送邮件-----------------
try:
smtp = smtplib.SMTP()
smtp.connect(smtpserver)
smtp.login(sender, password)
except:
smtp = smtplib.SMTP_SSL(smtpserver,port)
smtp.login(sender, password)
smtp.sendmail(sender, receicer, msg.as_string())
smtp.quit()

自动化测试基础篇--Selenium发送测试报告邮件的更多相关文章
- 自动化测试基础篇--Selenium unittest生成测试报告(HTMLTestRunner)
如何生成HTMLTestRunner测试报告.接上篇文章,对于unittest框架,运行后,测试结果不便于查看,同时多个case存在的时候,可能会导致case result记录不正确的情况. 为此,引 ...
- 自动化测试基础篇--Selenium简单的163邮箱登录实例
摘自https://www.cnblogs.com/sanzangTst/p/7472556.html 前面几篇内容一直讲解Selenium Python的基本使用方法.学习了什么是selenium: ...
- 自动化测试基础篇--Selenium元素定位
摘自https://www.cnblogs.com/sanzangTst/p/7457111.html 一.Selenium元素定位的重要性: Web自动化测试的操作:获取UI页面的元素,对元素进行操 ...
- 自动化测试基础篇--Selenium框架设计(POM)
一.自动化测试框架 感谢木棉花的漂泊分享,内容转自链接:http://www.cnblogs.com/fengyiru6369/p/8053035.html 1.什么是自动化测试框架 简单来说,自动化 ...
- 自动化测试基础篇--Selenium文件上传send_keys
摘自https://www.cnblogs.com/sanzangTst/p/8358165.html 文件上传是web页面上很常见的一个功能,自动化成功中操作起来却不是那么简单. 一般分两个场景:一 ...
- 自动化测试基础篇--Selenium鼠标键盘事件
摘自https://www.cnblogs.com/sanzangTst/p/7477382.html 前面几篇文章我们学习了怎么定位元素,同时通过实例也展示了怎么切换到iframe,怎么输入用户名和 ...
- 自动化测试基础篇--Selenium简介
摘自https://www.cnblogs.com/sanzangTst/p/7452636.html 一.软件开发的一般流程 二.什么叫软件测试? 软件测试(英语:Software Testing) ...
- 自动化测试基础篇--Selenium Python环境搭建
学习selenium python需要的工具: 1.浏览器 2.Python 3.Selenium 4.FireBug(Firefox) 5.chromedriver.IEDriverServer.g ...
- 引用 自动化测试基础篇--Selenium简介
原文链接:http://www.cnblogs.com/sanzangTst/p/7452636.html 鸣谢参藏法师 一.软件开发的一般流程 二.什么叫软件测试? 软件测试(英语:Software ...
随机推荐
- 一览js模块化:从CommonJS到ES6
本文由云+社区发表 模块化是指把一个复杂的系统分解到一个一个的模块. 模块化开发的优点: (1)代码复用,让我们更方便地进行代码管理.同时也便于后面代码的修改和维护. (2)一个单独的文件就是一个模块 ...
- 精读JavaScript模式(七),命名空间模式,私有成员与静态成员
一.前言 惰性十足,这篇2月19号就开始写了,拖到了现在,就是不愿意花时间把看过的东西整理一下,其它的任何事都比写博客要有吸引力,我要反省自己. 从这篇开始,是关于JS对象创建模式的探讨,JS语言简单 ...
- systemd服务详解-技术流ken
简介 在centos5中生成和管理用户空间中的进程以及完成系统的初始化使用的是init,并且是依次启动.在centos6中则是使用的upstart,在一定程度上实现了并行启动,但是仍然存在依赖关系,到 ...
- 前端(一)之 HTML
前端之 HTML 前言 python 基础.网络编程.并发编程与数据库要开始告一段落了,从现在开始进入前端的学习.前端的东西多且杂,需要好好地练习. 什么是前端 前端即网站前台部分,运行在 PC 端, ...
- Apollo 10 — adminService 全量发布
目录 UI 界面 Portal 服务 admin 服务 总结 1. UI 界面 2. Portal 服务 当我们点击上面的发布按钮的时候,调用的当然是 portal 的接口.具体代码如下: /** * ...
- Redis学习笔记(1)-安装Oracle VM VirtualBox
Oracle VM VirtualBox官网网址 打开安装包网址界面,如下所示,点击截图红框. 下载完成后,点击exe文件,不停的点击下一步. 因为是使用MarkDown编辑器书写的尝试,所以写的简单 ...
- vue elementUI enter 回车 (转载)
表单提交时需要处理输入框的回车事件 一.vue原生 原生input标签可以用@keyup.enter="onSubmit" 如:<input v-on:keyup.enter ...
- mysql用户授权、数据库权限管理、sql语法详解
mysql用户授权.数据库权限管理.sql语法详解 —— NiceCui 某个数据库所有的权限 ALL 后面+ PRIVILEGES SQL 某个数据库 特定的权限SQL mysql 授权语法 SQL ...
- 讲讲网络模块中加解密那点儿事--AES+BASE64
本篇文章已授权微信公众号 dasuAndroidTv(大苏)独家发布 这次想来讲讲网络安全通信这一块,也就是网络层封装的那一套加密.解密,编码.解码的规则,不会很深入,但会大概将这一整块的讲一讲. 之 ...
- CSS概念【记录】
1.CSS语法 2.@规则 3.注释 4.层叠 5.优先级 6.继承 7.值 8.块格式化上下文 9.盒模型 10.层叠上下文 11.可替换元素 12.外边距合并 13.包含块 14.视觉格式化模型 ...