900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > python自动发邮件报554错误_python-自动化测试结果发送邮件报错(smtplib.SMTPDataErr

python自动发邮件报554错误_python-自动化测试结果发送邮件报错(smtplib.SMTPDataErr

时间:2018-11-15 06:40:18

相关推荐

python自动发邮件报554错误_python-自动化测试结果发送邮件报错(smtplib.SMTPDataErr

先把我的邮件发送脚本粘贴上来吧,再解释下我的报错和解决方法:

import smtplib,email,os,time,yagmail

from email.mime.multipart import MIMEMultipart

from email.mime.text import MIMEText

from email.header import Header

#测试报告存储的路径

report_dir = ‘..........\\report\\‘

#将测试报告文件夹下的所有文件名作为列表返回

lists =os.listdir(report_dir)#对所有测试报告按照生成时间进行排序

lists.sort(key=lambda filename: os.path.getmtime(report_dir +filename))#获取最新的测试报告

recent = lists[-1]#指定最新的测试报告路径

file =os.path.join(report_dir, recent)#邮件正文

#content = "接口测试报告"

## 将测试报告作为附件发送

#yag.send(".....com","测试报告",content,file)

#发送邮箱服务器

smtpserver = ‘‘

#发送邮箱用户/密码(登录邮箱操作)

user = "......@"password= ‘..........‘

#发送邮箱

sender = ".........@"

#接收邮箱

receivers = [‘......@‘, ".......@"]#发送主题

subject = ‘接口测试报告‘

## 编写HTML类型的邮件正文(把HTML代码写入)

#msg = MIMEText(‘

百度一下‘,‘html‘,‘utf-8‘)

#msg[‘Subject‘] = Header(subject,"utf-8")

#发送附件

sendfile = open(file, "r", encoding=‘utf-8‘).read()

att= MIMEText(sendfile, "base64", "utf-8")

att["Content-Type"] = "application/octet-stream"att["Content-Disposition"] = "attachment;filename = result.html"msgRoot= MIMEMultipart(‘related‘)

msgRoot[‘Subject‘] =subject

msgRoot.attach(att)

msgRoot["From"] = "L<.......>"msgRoot["To"] = ‘%s‘ %receivers#连接发送邮件(smtplib模块基本使用格式)

smtp =smtplib.SMTP()

smtp.connect(smtpserver,25)#smtp.set_debuglevel(1)

smtp.login(user, password)#smtp.sendmail(sender,receiver,msg.as_string())

smtp.sendmail(sender, receivers, msgRoot.as_string())

smtp.quit()

这个是已经可以正常执行的代码了,中途出现535、554的错误 ,记录下我解决报错的结果方法和尝试

1.首先报错535:这个比较简单就解决的了,去我的163邮箱里面打开授权,设置如下:

原因:

未将POP3/SMTP服务开启。通过在163邮箱内 设置 获取授权码 打开,通过授权码可以进行第三方登录。

然后开启SMTP服务,并且记录下授权的密码

记住,要记录下这个开启时给的授权密码。然后赋值到脚本里面的password,这个密码不是邮箱登录密码,是这个授权密码哦。

则需要这样就基本处理掉了535报错

2.再次运行出现554报错,解决方案有好几种:

原因:

* 发件人和收件人参数没有进行定义

*发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件;信封发件人和信头发件人不匹配

第一个的问题解决方案,顾名思义,进行参数定义,就像我脚本代码里面的一样:

msgRoot["From"] = "L<.......>" # 发件人msgRoot["To"] = ‘H<.........>‘ # 收件人

第二个的问题解决方案,据说只要在收件人里面加上发件人自己就可以了,还有说主题最好超过五个字符,且不要有星号等特殊符号,更有的人说不要加测试(test)字眼,我觉得多试试,总是有一种可能阻挡住你的。

最后,希望能解决你的问题,要是有其他情况呢,留言下来我们一起去分析解决吧

python自动发邮件报554错误_python-自动化测试结果发送邮件报错(smtplib.SMTPDataError: (554 bDT:SPM 163……)解决方法...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。