Python自动化 测试报告原来是这样实现自动发送到邮箱的!

nmb_musen · 2019年11月21日 · 最后由 zyt_123456 回复于 2019年11月21日 · 280 次阅读
本帖已被设为精华帖!

测试报告原来是这样实现自动发送到邮箱的!

​ 很多同学在学习python自动化的时候,都有这么一个需求,希望自动将测试报告发送到邮箱,关于实现自动发送邮件,我们可以采用jenkins来实现,同样也可以通过python来实现。今天就来跟大家聊聊如何通过python来实现自动发送邮件。其实也很简单,通过python中smtp和email的官方库,就可以完成发送邮件这件事情。发送邮件需要使用到smtp服务,如果公司没有可以使用第三方邮箱的smtp服务,如qq,163等,当时用qq或163时需要提起开启邮箱的smtp服务。

一、开启邮箱SMTP服务

刚刚说到发送邮件需要使用SMTP服务器,常用的免费服务器有:163126QQ,接下来以163邮箱为例给大家将一下如何开启smtp服务,注意开启过程中设置的授权码非常重要,是用来登录smtp服务器的,一定要记住。

1)注册163邮箱,登录后设置。

![发送邮件]

2)在新页面中点击“客户端授权密码”,勾选“开启”,弹出新窗口填写手机验证码。

3)填写授权码。

![发送邮件]

4)提示开启成功。

![发送邮件]

二、使用python发送邮件

  • #### python发送邮件需要使用smtplib email这两个官方库。
import smtplib
from email.mime.text import MIMEText
from email.header import Header

1、发送普通的邮件

  • 实现步骤:
    • 第一步:创建一个SMTP的对象,连接到SMTP服务器
      # 163邮箱的smtp服务器地址为:smtp.163.com,端口为:25
      s = smtplib.SMTP("smtp.163.com" , 25)
      
    • 第二步:登录SMTP服务器
      mail_user = "邮箱账号"  # 用户名
      mail_pass = "授权码"  # 密码
      smtp.login(mail_user, mail_pass)
      
    • 第三步::构建邮件内容
      # 构建邮件内容
      content = '本次测试通过率为88%'
      # 主题:
      Subject = "2019/6/18测试报告"
      # 发件人
      From = 'a546245426@163.com'
      # 收件人
      To = "测试人员"
      
      # 创建一个邮件
      message = MIMEText(content, 'plain', 'utf-8')
      # 添加邮件主题
      message['Subject'] = Header(Subject, 'utf-8')
      # 添加发件人
      message['From'] = From
      # 添加收件人
      message['To'] = To
      
      
    • 第五步:发送邮件

python # 发送邮件 smtp.send_message(msg=msg,from_addr="收件人邮箱地址",to_addrs="收件人邮箱地址")

一封普通的邮件发送步骤如上所示,但是邮件如果要带附件呢,比如将测试报告作为附件进行发送。应该怎么发送?代码为大家整理好了,参考如下:

2、发送带附件的邮件

带附件的邮件,完整代码如下

"""
============================
Author:柠檬班-木森
Time:2019/9/11
E-mail:3247119728@qq.com
Company:湖南零檬信息技术有限公司
============================
"""

import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart

# 第一步: 连接到smtp服务器
smtp = smtplib.SMTP_SSL(host='smtp.163.com',port=465)

# 第二步:登录smtp服务器
smtp.login(user='邮箱账号',password='授权码')

# 第三步构建一封带附件的邮件
# 创建一封多组件的邮件
msg = MIMEMultipart()
# 添加发件人
msg['From'] = "xxxxx@163.com"
# 添加收件人
msg['To'] =  "xxx<xxxxx@qq.com>"
# 添加主题
msg['Subject'] = Header("带附件的测试邮件",charset='utf8')
# 添加邮件文本内容
# 创建邮件文件内容对象
text_content = MIMEText("这封邮件是用来测试发送是否成功的,邮件中添加了测试报告的附件",_charset='utf8')
# 把邮件的文本内容,添加到多组件的邮件中
msg.attach(text_content)

# 添加附件
f_msg = open('报告文件','rb').read()
app = MIMEApplication(f_msg)
app.add_header('content-disposition', 'attachment', filename='python.html')
msg.attach(app)

# 发送邮件
smtp.send_message(msg=msg,from_addr="发件人邮箱地址",to_addrs="收件人邮箱地址")

​ 大家只需要对上述代码进行一下封装就可以应该到我们自动化项目中了,当自动化脚本执完之后,调用发送邮件的方法,将报告作为附件发送出去。

共收到 6 条回复
shakebabe 将本帖设为了精华贴 11月21日 15:05

可优大佬讲课棒棒哒!

可优大佬讲课棒棒哒!17:47:10

可优大佬讲课棒棒哒!17:50:51

可优大佬讲课棒棒哒!17:58:25

可优大佬讲课棒棒哒!18:05:44

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册