csdn最牛最全的使用python自动发送邮件
使用python自动发送邮件
1、Python 自带的发送邮件功能
在生成报告后我们希望框架能自动把报告发送到我们的邮箱中。和outlook,foxmail等邮件客户端一样,Python中发送邮件需要通过Email的smtp服务发送。
首先需要确认用来发送邮件的邮箱是否启用了smtp服务,以126邮箱为例:
发送邮件分3步
1. 编写邮件内容(Email邮件需要专门的MIME格式)
2. 组装Email头(发件人,收件人,主题)
3. 连接smtp服务器并发送邮件
1.1 发送邮件基础实现
代码实现:
# -*- coding:utf-8 -*- import smtplib # 用于建立smtp连接 from email.mime.text import MIMEText # 邮件需要专门的MIME格式# 1.编写邮件内容,email邮件需要专门的MIME格式 msg =MIMEText("这是邮件正文:Hello.yin,this is a test mail", "plain", "utf-8") # plain指普通文本格式邮件内容# 2.组装Email头(发件人,收件人,主题) msg['From'] = 'zuopuyin@126.com' # 发件人 msg['To'] = 'zuopuyin2@126.com' # 收件人 msg['Subject'] = '这是邮件主题:Hello yin Api Test Report' # 邮件主题# 3.连接smtp服务器并发送邮件 smtp = smtplib.SMTP_SSL("smtp.126.com") # smtp服务器地址,采用SSL模式 smtp.login('zuopuyin@126.com', 'ROFAUSLTHKIIQJM') # 如果使用126邮箱,需在设置中申请授权密码 smtp.sendmail('zuopuyin@126.com', 'zuopuyin2@126.com', msg.as_string()) smtp.quit()
输出结果:
1.2 中文邮件主题、HTML邮件内容,及附件
实现代码:
# -*- coding:utf-8 -*- import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart # 混合MIME格式,支持上传附件 from email.header import Header # 用于使用中文邮件主题# 1.编写邮件内容 with open("testReport.html", encoding='utf-8') as f: # 打开html报告email_body = f.read() # 读取报告内容msg = MIMEMultipart() # 混合MIME格式 msg.attach(MIMEText(email_body, 'html', 'utf-8')) # 添加html格式邮件正文,会丢失css格式# 2.组装email的头 msg['From'] = 'zuopuyin@126.com' # 发件人 msg['To'] = 'zuopuyin2@126.com' # 收件人 msg['Subject'] = Header('接口测试报告', 'utf-8') # 中文主题邮件,指定utf-8编码# 3.构造附件1,传送到当前目录下的text.txt文件 att1 = MIMEText(open('testReport.html', 'rb').read(), 'base64', 'utf-8') # 二进制格式打开 att1["Content-Type"] = "application/octet-stream" att1["Content-Disposition"] = 'attachment; filename="report.html"' # filename为邮件中附件显示的名字 msg.attach(att1)# 连接smtp服务器并发送邮件 smtp = smtplib.SMTP_SSL("smtp.126.com") # smtp服务器地址,使用SSL格式 smtp.login("zuopuyin@126.com", "ROFAUSLTHKIIQJM") # 用户名和密码 smtp.sendmail("zuopuyin@126.com", "zuopuyin2@126.com", msg.as_string()) smtp.sendmail("zuopuyin@126.com", "yinzuopu@qq.com", msg.as_string()) # 发送给另一个邮箱 smtp.quit()
输出结果:
1.3 封装发送邮件办法
# -*- coding:utf-8 -*- import smtplib from email.header import Header from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from log.config import *def send_email(report_file):msg = MIMEMultipart() # 混合MIME格式msg.attach(MIMEText(open(report_file, encoding='utf-8').read(), 'utf-8')) # 添加html格式邮件正文(会丢失css格式)msg['From'] = 'zuopuyin@126.com' # 发件人msg['To'] = 'yinzuopu@qq.com' # 收件人msg['Subject'] = Header('接口测试报告', 'utf-8') # 中文邮件主题,指定utf-8编码att1 = MIMEText(open(report_file, 'rb').read(), 'base64', 'utf-8') # 二进制格式打开att1["Content-Type"] = 'application/octet-stream'att1["Content-Disposition"] = 'attachment; filename="testReport.html"' # filename为邮件中附件显示的名字msg.attach(att1)try:smtp = smtplib.SMTP_SSL('smtp.126.com') # smtp服务器地址 使用SSL模式smtp.login('zuopuyin@126.com', 'ROFAUSLTHKIIQJM') # 用户名和密码smtp.sendmail("zuopuyin@126.com", "yinzuopu@qq.com", msg.as_string())smtp.sendmail("zuopuyin@126.com", "zuopuyin2@126.com", msg.as_string()) # 发送给另一个邮箱logging.info("邮件发送完成!")except Exception as e:logging.error(str(e))finally:smtp.quit()
run_all.py中结束后发送邮件
# -*- coding:utf-8 -*-import unittest from HTMLTestRunner import HTMLTestRunner from log.config import * from test_send_mail_03 import send_email logging.info("================================== 测试开始 ==================================") suite = unittest.defaultTestLoader.discover("./") with open("report.html", 'wb') as f: # 改为with open 格式HTMLTestRunner(stream=f, title="Api Test", description="测试描述").run(suite) send_email('report.html') # 发送邮件 logging.info("================================== 测试结束 ==================================")
csdn最牛最全的使用python自动发送邮件相关推荐
- python自动发送邮件不需要发件邮箱_python使用QQ邮箱实现自动发送邮件
最近用到Python自动发送邮件,主要就是三步,登录邮件.写邮件内容.发送,用到的库是 smtplib 和 email,直接使用pip安装即可 我使用的是QQ邮箱,首先需要设置QQ邮箱POP3/SMT ...
- python自动发送邮件_Python自动发送邮件
用 Python 自动发送邮件在日常工作中可以避免一些重复性的工作,Python 用来发送邮件会涉及到 smtplib 和 Email 两个模块,smtplib 是用来发送邮件用的,Email 是用来 ...
- Python 自动发送邮件详细教程
自动发送邮件能应用于许多场景中,比如我想要知道股票策略中的股票池是否有实时的更新,这时候如果再拉一遍数据,跑一遍脚本,实在是太浪费时间了.为什么不把这一套流程放到服务器上,然后到点自动运行并发送邮件呢 ...
- python自动发送邮件
python自动发送邮件 1.导入yagmail pip install yagmail #如果上面方式报错,建议使用阿里云镜像进行添加 pip install yagmail -i https:// ...
- 高效办公,如何利用Python自动发送邮件
自动发送邮件 我们把报表做出来以后一般都是需要发给别人查看,对于一些每天需要发的报表或者是需要一次发送多份的报表,这个时候可以考虑借助Python来自动发送邮件. 使用邮箱的第一步 一般我们在使用QQ ...
- python自动发送邮件脚本
目录 需要开通smtp功能 脚本 需要开通smtp功能 这里举例子使用的163的邮箱,每个邮箱都是一样的,发件邮箱设置即可 163网易免费邮-你的专业电子邮局 脚本 # -*- coding:utf- ...
- python自动发送邮件实现
目录 1 前言 2 准备工作 2.1 电子邮件的基础知识. 2.2 python邮件库 2.3 邮箱设置 3 python实现邮件自动发送 3.1 SMTP()和send()方法介绍 3.2 pyth ...
- Python 自动发送邮件实战案例,人人都可以学会
自动发送邮件能应用于许多场景,比如我想要知道股票策略中的股票池是否有实时的更新,这时候如果再拉一遍数据,跑一遍脚本,实在是太浪费时间了.为什么不把这一套流程放到服务器上,然后到点自动运行并发送邮件呢? ...
- python自动发送邮件(html、附件等),qq邮箱和网易邮箱发送和回复
在python中,我们可以用程序来实现向别人的邮箱自动发送一封邮件,甚至可以定时,如每天8点钟准时给某人发送一封邮件.今天,我们就来学习一下,如何向qq邮箱,网易邮箱等发送邮件. 一.获取邮箱的SMT ...
最新文章
- 【C 语言】二级指针作为输入 ( 二维数组 | 二维数组遍历 | 二维数组排序 )
- 华为2013校园招聘上机笔试题
- 服务器虚拟机网卡怎么配置文件,VMWARE复制虚拟机之后,需重新配置网卡(CENTOS 6)...
- 分布式事务seate-server的docker镜像的制作与部署
- Core Data 编程指南
- 智能时代 软件赋能——2017中国软件技术大会
- vue-cli搭建项目的目录结构及说明
- Android char数据类型乱码��解决方法
- 转到Servlet出现500型错误
- 为什么电商越来越难做了?
- 潭州课堂25班:Ph201805201 第十二课 new方法,定制属性访问,描述符与装饰器 (课堂笔记)...
- 一个实现业务规则组合小框架
- FloatingActionButton
- 用计算机制作flash动画教案,最新最完整Flash动画制作教案.doc
- 安川机器人如何注释化指令_安川机器人指令一览
- 奔图打印linux驱动下载,奔图P3405D打印机驱动下载
- 蓝桥杯c语言程序题题库,蓝桥杯c语言试题
- 5G——万物互联新时代
- 大学计算机考试打字不及格,法考没过的人给你的忠告,2021年法考生必看
- 计算机学习计划范文,【计算机学习计划范文】