前言
最近有小伙伴提醒,说还有邮件服务没有发文章,后面自己检查发现确实自己漏了,所以今天给大家补上。
首先web自动化可以自动生成报告,但是在实际工作中,最好能够将报告发送给指定的相关人员,那么省的我们手动进行发送,所以邮件发送也是自动化需要完成的一部分。如果此部分要完成自动化的话,肯定有同学一开始会认为也是通过访问邮箱地址,然后元素定位,最后上传附件报告发送,这种思维肯定可以,但是不稳定且极其复杂,所以我们会通过其内置的服务进行完成。
邮件的基础知识
1、邮件发送的基本过程与概念
一封邮件的基本内容通常分为三部分:邮件头部;邮件体;邮件附件
邮件服务器 :类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。
from:wzmtest1313@163.com ----发件人
to:wzmtest1313@163.com ----收件人
subject:Crm系统执行测试报告 ----主题
body: 执行总共用例数?通过用例数?失败用例数? -----内容体
2、邮件传输协议
SMTP协议:全称为 Simple Mail Transfer Protocol,简单邮件传输协议。它定义了邮件客户端软件和SMTP邮件服务器之间,以及两台SMTP邮件服务器之间的通信规则
POP3协议:全称为 Post Office Protocol,邮局协议。它定义了邮件客户端软件和POP3邮件服务器的通信规则
IMAP协议:全称为 Internet Message Access Protocol,Internet消息访问协议,它是对POP3协议的一种扩展,也是定义了邮件客户端软件和IMAP邮件服务器的通信规则
SMTPLib模块
Python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。
与邮件服务器进行建立会话连接
import smtplib
from email.mime.text import MIMEText
#声明邮件的发送者、接收者
sender = 'wzmtest1313@163.com'
receivers = 'wzmtest1313@163.com'
# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
message = MIMEText('详细内容如下', 'plain', 'utf-8')
message['From'] = sender
message['To'] = receivers
message['Subject']="Crm系统测试报告"
get_smtp=smtplib.SMTP(host="smtp.163.com")
get_smtp.login("wzmtest1313@163.com","wzmtest1313")
get_smtp.sendmail(sender,receivers,message.as_string())
上面是一个最简单的邮件发送,下面来详细说明下内容:
a.如果想要能够将邮件发送成功,第一必须先将163发送者的邮件服务器的smtp服务启动
进入163邮箱,点击设置
qq的设置也是一样的,进入qq邮箱,点击设置
b.get_smtp.login传入的两个参数是用户名和密码,而此处的密码并不是你登陆邮箱的密码是刚才说的授权码
c.get_smtp.sendmail传入的三个参数,第一个参数是发送者,第二个是接收者,第三个是邮件对象,邮件对象可以通过email下的MIMEText完成文本对象的创建,此时创建的对象只由邮件头、邮件体两部分所构成,无法通过该对象创建邮件附件。
d.M