码迷,mamicode.com
首页 > 编程语言 > 详细

【selenium+Python unittest】之发送邮箱时报错:smtplib.SMTPDataError、smtplib.SMTPAuthenticationError(例:126邮箱)

时间:2018-02-03 15:53:47      阅读:2143      评论:0      收藏:0      [点我收藏+]

标签:login   pass   post   log   http   tps   str   nec   one   

原代码如下:

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.SMTPDataError、smtplib.SMTPAuthenticationError(例:126邮箱)

标签:login   pass   post   log   http   tps   str   nec   one   

原文地址:https://www.cnblogs.com/Owen-ET/p/8409141.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!