版权声明:本文为博主原创文章,遵循 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(\"[email protected]\", \"htkbbafwycpgbgfd\")# 如果有多个收件人,则用列表server.send_mail(\"[email protected]\", 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()

爱站程序员基地
![[翻译] Backpressure explained — the resisted flow of data through software-爱站程序员基地](https://aiznh.com/wp-content/uploads/2021/05/5-220x150.jpeg)

