selenium+Python unittest之发送邮箱时报错:smtplib.SMTPDataErrorsmtplib.SMTPAuthenticationError(例:126邮箱)(示(代码
Posted Owen_ET
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium+Python unittest之发送邮箱时报错:smtplib.SMTPDataErrorsmtplib.SMTPAuthenticationError(例:126邮箱)(示(代码相关的知识,希望对你有一定的参考价值。
原代码如下:
import smtplib from email.mime.text import MIMEText from email.header import Header #要发送的服务器 smtpserver = \'smtp.126.com\' #要发送的邮箱用户名/密码 user = \'XXX@126.com\' password = \'XXX\' #发送的邮箱 sender = \'XXX@126.com\' #接收的邮箱 receiver = \'XXX@qq.com\' #发送邮箱主题 subject = \'test_mail\' #编写HTML类型的邮件正文 msg = MIMEText(\'<html><h1>大佬好!</h1></html>\',\'html\',\'utf-8\') msg[\'Subject\'] = Header(subject,\'utf-8\') #连接发送邮件 smtp = smtplib.SMTP() smtp.connect(smtpserver) smtp.login(user,password) smtp.sendmail(sender,receiver,msg.as_string()) smtp.quit()
一、现象:
发送邮件时,运行时报错smtplib.SMTPDataError,如下图:
二、解决办法
①经网上查询得知:因为126邮箱中没有开启【授权码】,如下图所示应该开启:
②但是再次运行代码还是报错:smtplib.SMTPAuthenticationError,如下图,提示登陆失败:
原因是:代码中的密码应该改为授权密码即可。
③继续运行后,但是代码还是报错:smtplib.SMTPDataError:(554, b\'DT:SPM 126 smtp4
报错原因是没有加上下面的代码:
#报错原因是因为“发件人和收件人参数没有进行定义 msg[\'from\'] = \'test_bug@126.com\' msg[\'to\'] = \'testyao@163.com\'
加上之后,终于解决发送邮件失败的问题了。
完整代码如下:(因保密自行替换)
import smtplib from email.mime.text import MIMEText from email.header import Header #要发送的服务器 smtpserver = \'smtp.126.com\' #要发送的邮箱用户名/密码 user = \'XXX@126.com\' password = \'XXX\' #发送的邮箱 sender = \'XXX@126.com\' #接收的邮箱 receiver = \'XXX@qq.com\' #发送邮箱主题 subject = \'test_mail\' #编写HTML类型的邮件正文 msg = MIMEText(\'<html><h1>大佬好!</h1></html>\',\'html\',\'utf-8\') msg[\'Subject\'] = Header(subject,\'utf-8\') msg[\'from\'] = \'XXX@126.com\' msg[\'to\'] = \'XXX@qq.com\' #连接发送邮件 smtp = smtplib.SMTP() smtp.connect(smtpserver) smtp.login(user,password) smtp.sendmail(sender,receiver,msg.as_string()) smtp.quit()
以上是关于selenium+Python unittest之发送邮箱时报错:smtplib.SMTPDataErrorsmtplib.SMTPAuthenticationError(例:126邮箱)(示(代码的主要内容,如果未能解决你的问题,请参考以下文章
selenium + python自动化测试unittest框架学习selenium原理及应用
python+selenium+unittest测试框架4-邮件发送最新测试报告