python显示邮件发送成功失败,python中发送带附件的邮件
1.大蟒发送邮件代码如下
#-*-编码:utf8-*- ==============================作者:卢吉尔时间:2019/7/1E-邮箱:2327994109 @ QQ。 com=================================================== import smtplibfrom email。哑剧。文本从电子邮件导入mime文本。标题导入标题头#发送带附件邮件需要下边两个库从email.mime.application导入来自电子邮件的mime应用程序。哑剧。几部分的导入 MIMEMultipart 该模块的邮件发送包含附件# 创建一个简单邮件传输协议对象s=smtplib .SMTP()#连接到简单邮件传输协议服务器host=smtp.163.com #注意163邮箱的简单邮件传输协议用的是25端口,qq用的是465端口s.connect(host,25)#登录简单邮件传输协议服务器mail _ account= 15934815829 @ 163。com #发件邮箱mail _ pwd= * * * * * * * #授权码登录网站(用户=邮件帐户,密码=邮件密码)#构建一封邮件mail_content=MIMEMultipart()#构建邮件内容Subject=2019/07/01邮件发送 # 邮件主题mail _ content[ Subject ]=Header(Subject, utf8 )From=mail _ account to= 450615105 @ QQ。com mail _ content[ From ]=From #发件人邮件内容[收件人]=收件人#收件人content=MIMEText(测试邮件是否发送成功) # 邮件正文mail_content.attach(content)#构建附件# 1.附件路径文件路径=r D:\ APP _ Workplaces \ AutoTest _ Learn \ requests _ tests 02 \ request 2019 06 24 \ reports \ 2019 06 28093654测试报告。html file obj=mime application(open(文件路径, rb ).read(),_ subtype=None)文件obj。add _ header( content-disposition ,附件,filename=report.html)#邮件添加附件mail_content.attach(fileObj)#发送邮件s.sendmail(from_addr=From,to_addrs=To,msg=mail_content.as_string()) 2 .结果运行报如下截图错误:
追溯(最近一次调用last):File D:/App _ workshop/AutoTest _ Learn/AutoTest _ Learn/requeststest _ 02/homework/web _ service _ 2019 07 01/send _ email _ File。py ,第49行,在File obj=mime应用程序(打开(文件路径, rb )模块中. read(),_ subtype=None)File D:\ APP _ Installs \ python 3.7 \ lib \ email \ mime \ application。py ,第33行,在__init__ raise TypeError(无效的应用程序哑剧子类型)类型错误:无效的应用程序哑剧子类型3。问题分析:
通过报错信息我们进入源码应用模块中,并定位在应用模块__init__中,初始化中代码如下:
def __init__(self,_data,_subtype=octet-stream ,_ encoder=编码器。encode _ base64,*,policy=None,* * * _ params): 创建一个应用程序/*类型MIME文档.数据是包含原始应用程序数据的字符串. 1 _子类型是哑剧内容类型子类型,默认为“八位流”._编码器是一个为应用程序数据传输执行实际编码的函数,默认为base64编码。任何附加的关键字参数都被传递给基类构造函数,该构造函数将它们转换成内容类型头上的参数“if _subtype”为无:引发TypeError(无效的应用程序哑剧子类型)MIMENonMultipart .__init__(self, application ,_subtype,policy=policy,* * * _ params)self。set _ payload(_ data)_ encoder(自身)对比异常信息,类型错误:无效的应用程序哑剧子类型,那我们就知道,是因为_子类型是没有,所以抛出异常,未走
MIMENonMultipart .__init__(self, application ,_subtype,policy=policy,* * * params)这时候,我们就知道了原因了:是我们在创建MIMEApplication对象时,参数_subtype 是无
4.解决方法:
在我们自己发送邮件的代码中,修改一行代码:
file obj=mime application(open(文件路径, rb ).read(),_subtype=False)当然:_子类型也可以是其他,不一定非要是错误的
这时候,邮件就可以发送成功了
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。