在自动化测试的时候,有时需要用例执行完,自动发送测试报告。Python发送邮件可以使用smtplib标准模块,但该模块比较繁琐,推荐使用yagmail这个第三方模块,用法简化很多。

一、邮箱设置

  1、在邮箱设置里打开smtp服务

  2、开启邮箱授权码

    并不是所有邮箱都有邮箱授权码。163邮箱授权码可以自己输入,qq邮箱授权码是随机码,新浪邮箱则没有邮箱授权码,直接通过登录密码发送邮件。

二、利用yagmail实现发送邮件

需要注意的是:

  1、yagmail实际是封装了smtplib模块,来实现的邮件发送功能

  2、直接下载的yagmail模块,发送中文附件时标题乱码(解决这个问题,需要修改模块源码)

yagmail的使用如下

import yagmail
username = 'abc@163.com'
passwd = '123456'#有授权码的邮箱填授权码,没有授权码的填登录密码
#实例化
mail = yagmail.SMTP(user=username,
                    password=passwd,
                    host='smtp.163.com',
                    #smtp_ssl = True,#用安全协议的邮箱需要指定,如qq邮箱
                    # #port = 25#默认端口号不用改,25或者465
                    )
#调用实例方法
mail.send(
    to=['123@qq.com','321@qq.com'],#如果是多个收件人的话,写成list就行
    cc='456@qq.com',#抄送
    subject='这是主题',#邮件标题
    contents='我是正文',#邮件正文
    attachments=['tmp.py',r'D:\workspace\python\test.txt'],
    #附件,多个附件写成list,绝对路径前用r,防止\n转义
    #如果是win10绝对路径用两个\\就可以了D:\\workspace\\python\\test.txt
)
print('发送成功')

 

posted on 2018-05-21 17:55  忻冉然  阅读(190)  评论(0编辑  收藏  举报