python发送邮件模块–zmail
前言
-
每次学习新模块的的时候需要思考以下两个问题
1.为什么选择zmail?
2.zmail能解决工作中什么样的问题?
安装zamil模块
pip install zamil
zmail有哪些优点?
- 自动查找服务器自地址及其端口
- 自动使用合适的协议登录
- 自动将python字典转换为MIME对象(带附件)
- 自动添加邮件标题和本地名称,以避免服务器拒绝您的邮件
- 轻松自定义邮件标题
- 支持HTML作为邮件内容
- 只需要python> = 3.5,您可以将其嵌入到项目中而无需其他模块
演式发送邮件
- 文件夹建1个HTML文件
- 邮件发送HTML文件
- 演式发送邮件效果
Unittest单元测试框架和zmail发送邮件搭配使用,超爽的!谁用谁知道
实战演练
- 测试用例
Unittest单元测试框架和zmail发送邮件搭配使用,超爽的!谁用谁知道
生成HTML测试报告
#!/usr/bin/python3
# @Time : 2020/7/31 10:55
# @Author : 骑着乌龟找猪
import unittest
import HTMLTestRunner
# 用例目录地址
test_dir = "./"
def case():
# 加载测试所有用例
discover = unittest.defaultTestLoader.discover(test_dir,
pattern="test*py",
)
return discover
if __name__ == '__main__':
# 测试报告存放目录
report_path = "D:/report/result.html"
# 以二制定方式写入文件
file = open(report_path, 'wb')
# 定义测试报告
runner = HTMLTestRunner.HTMLTestRunner(stream=file,
title="测试报告",
description="用列执行结果")
# 执行用例生成报告
runner.run(case())
运行结果:
邮件模块代码
#!/usr/bin/python3
# @Time : 2020/7/31 8:28
# @Author : 骑着乌龟找猪
import zmail
def s_mail()
report_path = "D:/report/result.html"
MAIL = {
'subject': '邮件主题',
'content_text': '测试发送邮件',
'attachments': report_path,
}
server = zmail.server("发送邮件人", "QQ邮件的授权码,不是密码")
# 如果有多个收件人,则用列表
server.send_mail("[email protected]", MAIL)
备注:重点邮箱使用的是QQ授权码,不是QQ密码
完整代码
#!/usr/bin/python3
# @Time : 2020/7/31 10:55
# @Author : 骑着乌龟找猪
import unittest
import HTMLTestRunner
# 导入发送邮件模块
from Mail.zmail import s_mail
# 用例
test_dir = "./"
def case():
# 加载用例
discover = unittest.defaultTestLoader.discover(test_dir,
pattern="test*py",
)
return discover
if __name__ == '__main__':
# 报告生成目录
report_path = "D:/report/result.html"
# 测试结果写入到报告里
file = open(report_path, 'wb')
runner = HTMLTestRunner.HTMLTestRunner(stream=file,
title="测试报告",
description="用列执行结果")
# 执行用例生成报告
runner.run(case())
# 一定是要先关闭文件再执行下方的发送邮件,否则发送后的附件会为空
file.close()
s_mail()