python 发邮件 535, 'Error: authentication failed'

  import smtplib  
from email.mime.text import MIMEText  

mailto_list=["xxx@163.com"] 
mail_host="smtp.163.com"  
mail_user="xxxx@163.com"    
mail_pass="xxx"   


def send_mail(to_list,sub,content):  
                me="hello"
                msg = MIMEText(content,_subtype='html',_charset='gb2312')   
                msg['Subject'] = sub    
                msg['From'] = me  
                msg['To'] = ";".join(to_list)  
                try:  
                        s = smtplib.SMTP()  
                        s.connect(mail_host)
                        s.login(mail_user,mail_pass)  
                        s.sendmail(me, to_list, msg.as_string()) 
                        s.close()  
                        return True  
                except Exception, e:  
                        print str(e)  
                        return False  
if __name__ == '__main__':  
    if send_mail(mailto_list,"hello","<a href='http://www.cnblogs.com/'>hello</a>"):  
        print "success"  
    else:  
        print "fail"  

认证出了问题。SMTP有两种,一种强制要求验证,称为ESMTP。还有一种不要求验证,早的版本。
确认一下该SMTP是否要求验证?

我解决了 把mail_pass="xxx" 里面的xxx换成163邮箱里面的POP3/SMPT里面的授权码 亲测有效

百度都是说认证出了问题,但是密码和账号都是对的,而且邮箱也开启了smtp服务,请帮帮忙啊。是不是还有什么细节。

163不一定支持你这么做,估计光有邮箱,密码不够

有的时候是通过账号和密码验证
有的时候是通过邮箱地址和密码验证,你试试用 mail_user 不要加@163.com

我也遇到同样的问题,不知楼主解决了吗?

碰到一样的问题。并且企业邮箱还强制开始了微信安全登录,使用授权码去登录,一直都是提示这个。不明白是怎么回事!