wangdachui95345
wangdachui95345
2015-06-09 14:10
采纳率: 84.6%
浏览 9.6k

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"  
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • frank_20080215
    frank_20080215 2015-06-09 15:05
    已采纳

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

    点赞 评论
  • wangdachui95345
    wangdachui95345 2015-06-09 14:16

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

    点赞 评论
  • oyljerry
    oyljerry 2015-06-09 14:33

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

    点赞 评论
  • edouardzyc
    edouardzyc 2015-06-10 00:50

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

    点赞 评论
  • python_tty
    python_tty 2016-01-07 14:34

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

    点赞 评论
  • newadice
    南之倩倩 2019-03-29 16:40

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

    点赞 评论
  • qq_39120152
    洪聪良33 2020-05-07 16:16

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

    点赞 评论

相关推荐