快捷搜索:  汽车  科技

python怎样实现自动重复发送邮件:如何通过Python发送邮件实现自动化测试报告

python怎样实现自动重复发送邮件:如何通过Python发送邮件实现自动化测试报告这里需要先确认发件人的邮箱是否开通了SMTP邮箱权限,可以登录到163邮箱中,选择SMTP/IMAP中选择开启SMTP服务。勾选后进行连接登录:发送邮件前肯定需要登录邮箱了,这里安静先通过163的邮箱进行介绍,登录是通过smtplib这个库进行来完成的。smtplib是属于Python发送邮件的一个库。其简单的原理是通过SMTP的方式来实现发送报告的。SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。smtplib中对其SMTP的协议进行了一个封装,其中email是用来支持发送文本、图片和携带附件等功能。登录邮箱

前言

每当测试结束后,测试人员都会输出一份详细的测试报告给到领导或者组内人员,那么当我们自动化测试结束后的时候,也可以让其自动发送测试报告。

python怎样实现自动重复发送邮件:如何通过Python发送邮件实现自动化测试报告(1)

这样领导和组内的成员就能看到自动化测试每次测试的内容了。安静先介绍下如何通过Python发送邮件,再通过简单的小例子在自动化测试过程中自动发送报告。

smtplib

smtplib是属于Python发送邮件的一个库。其简单的原理是通过SMTP的方式来实现发送报告的。SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。

smtplib中对其SMTP的协议进行了一个封装,其中email是用来支持发送文本、图片和携带附件等功能。

登录邮箱

发送邮件前肯定需要登录邮箱了,这里安静先通过163的邮箱进行介绍,登录是通过smtplib这个库进行来完成的。

这里需要先确认发件人的邮箱是否开通了SMTP邮箱权限,可以登录到163邮箱中,选择SMTP/IMAP中选择开启SMTP服务。勾选后进行连接登录:

python怎样实现自动重复发送邮件:如何通过Python发送邮件实现自动化测试报告(2)

import smtplib

# 创建smtplib服务

smtp = smtplib.SMTP()

# 服务器地址

smtpserver = 'smtp.163.com'

# 发送账号

user = 'XXXXXXXX@163.com'

# 发送密码

password = 'xxxxxxx'

# 收件人

receivers = '821006052@qq.com'

# 连接服务器

smtp.connect(smtpserver)

# 登录邮箱账号

smtp.login(user password)

python怎样实现自动重复发送邮件:如何通过Python发送邮件实现自动化测试报告(3)

邮件发送类型

邮件发送通过Python中的email的库来实现的,其中email发送邮件可以支持多类型,比如纯文本、纯图片、文本加附件等方法,这里安静会一个个进行介绍。

文本发送

发送邮件肯定包含,发送人,收件人,邮件标题,邮件内容等内容,这里 email 中的Mimetext 的方法可以帮助我们实现发送纯文本内容。

import smtplib

from email.mime.text import MIMEText

# 创建 smtplib 服务

smtp = smtplib.SMTP()

# 服务器地址

smtpserver = 'smtp.163.com' # 发送账号

user = 'xxxxxxx@163.com' # 发送密码

password = 'xxxxxxx' # 收件人

receivers = '821006052@qq.com' # 邮件标题

subject = '自动化测试报告' # 发送内容 (文本内容,发送格式,编码格式)

message = MIMEText('这是测试文本内容,自动化测试通过' 'HTML' 'utf-8')

# 发送地址

message['From'] = user

# 接收地址

message['To'] = receivers

# 邮件标题

message['subject'] =subject

# 连接服务器

smtp.connect(smtpserver)

# 登录邮箱账号

smtp.login(user password)

# 发送账号信息

smtp.sendmail(user receivers message.as_string())

# 关闭

smtp.quit()

通过执行后可以发现,QQ 邮箱已经成功的收到了邮件信息。

python怎样实现自动重复发送邮件:如何通过Python发送邮件实现自动化测试报告(4)

图片发送

正常发送邮件只需要将邮件全部都复制粘贴到邮件中就行了。但是这里我们通过python 进行发送邮箱,需要用到 email 中的 MIMEimage 的模块了。这个模块可以帮助我们将我们需要的图片内容添加到邮件中,需要我们将本地的图片导入到 html 中,通过 html中进行发送,如果你通过链接的形式发送会失败,邮件会识别成恶意链接,从而进行拦截。这里安静这接在上面的代码中进行加入 HTML 格式,将图片嵌套在 html 文本中发送。

import smtplib

from email.mime.text import MIMEText

from email.mime.image import MIMEImage

from email.mime.multipart import MIMEMultipart

# 创建 smtplib 服务

smtp = smtplib.SMTP()

# 服务器地址

smtpserver = 'smtp.163.com' # 发送账号

user = 'xxxxxx@163.com' # 发送密码

password = 'xxxxxx' # 收件人

receivers = '821006052@qq.com' # 邮件标题

subject = '自动化测试报告中加入图片' # 发送内容 (文本内容,发送格式,编码格式)

text = ''' <html>

<head>自动化测试报告中带图片</head>

<body>

<p>

<p><img src="cid:anjing"></p>

<p>

</body>

</html>

''' message = MIMEMultipart()

body = MIMEText(text 'html' 'utf-8')

f = open('123.jpg' 'rb')

mag = MIMEImage(f.read())

f.close()

# 定义图片 ID 在 HTML 中展示

mag.add_header('Content-ID' 'anjing')

# 添加图片信息

message.attach(mag)

# 添加正文

message.attach(body)

# 发送地址

message['From'] = user

# 接收地址

message['To'] = receivers

# 邮件标题

message['subject'] =subject

# 连接服务器

smtp.connect(smtpserver)

# 登录邮箱账号

smtp.login(user password)

# 发送账号信息

smtp.sendmail(user receivers message.as_string())

# 关闭

smtp.quit()

通过执行上面的代码可以看到 QQ 邮箱,已经接收到了邮件信息,打开邮箱清楚的看到,图片已经在文本中添加了。

……

由于作者版权要求,仅展示文章的一部分,如需阅读完整版文章,可以私信回复”文章“即可免费获取。

最后:

1)关注 私信回复:“测试”,可以免费领取一份10G软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Mysql数据库、抓包工具、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试等。

2)关注 私信回复:"入群" 就可以邀请你进入软件测试群学习交流~~

猜您喜欢: