版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/laozhu_Python/article/details/107793882
python发送邮件模块–zmail
前言
-
为什么选择zmail?
-
zmail能解决工作中什么样的问题?
安装zamil模块
pip install zamil
zmail有哪些优点?
- 自动查找服务器自地址及其端口
- 自动使用合适的协议登录
- 自动将python字典转换为MIME对象(带附件)
- 自动添加邮件标题和本地名称,以避免服务器拒绝您的邮件
- 轻松自定义邮件标题
- 支持HTML作为邮件内容
- 只需要python> = 3.5,您可以将其嵌入到项目中而无需其他模块
演式发送邮件
-
建1个HTMl文件
-
邮件发送HTML文件
-
演式效果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mj8ocYSf-1596538823539)(C:\\Users\\zhuzhichao\\AppData\\Roaming\\Typora\\typora-user-images\\image-20200731130139161.png)]
实战演练
生成HTML测试报告
#!/usr/bin/python3# @Time : 2020/7/31 10:55# @Author : 骑着乌龟找猪import unittestimport HTMLTestRunner# 用例目录地址test_dir = \"./\"def case():# 加载测试用例discover = unittest.defaultTestLoader.discover(test_dir,pattern=\"test*py\",)return discoverif __name__ == \'__main__\':# 测试报告存放目录report_path = \"D:/report/result.html\"file = open(report_path, \'wb\')# 定义测试报告runner = HTMLTestRunner.HTMLTestRunner(stream=file,title=\"测试报告\",description=\"用列执行结果\")# 执行用例生成报告runner.run(case())
运行结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fHbzE5bq-1596538823549)(C:\\Users\\zhuzhichao\\AppData\\Roaming\\Typora\\typora-user-images\\image-20200731113929169.png)]
邮件模块
#!/usr/bin/python3# @Time : 2020/7/31 8:28# @Author : 骑着乌龟找猪import zmaildef s_mail()report_path = \"D:/report/result.html\"MAIL = {\'subject\': \'邮件主题\',\'content_text\': \'测试发送邮件\',\'attachments\': report_path,}server = zmail.server(\"284029574@qq.com\", \"htkbbafwycpgbgfd\")# 如果有多个收件人,则用列表server.send_mail(\"813825089@qq.com\", MAIL)
完整代码
#!/usr/bin/python3# @Time : 2020/7/31 10:55# @Author : 骑着乌龟找猪import unittestimport HTMLTestRunner# 导入发送邮件模块from Mail.zmail import s_mail# 用例test_dir = \"./\"def case():# 加载用例discover = unittest.defaultTestLoader.discover(test_dir,pattern=\"test*py\",)return discoverif __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()