[关闭]
@rickyChen 2016-04-29T15:15:38.000000Z 字数 995 阅读 15388

关于发邮件报错535 Error:authentication failed解决方法

其他


写在最前面

相信看到535报错的同学们代码编写方面都没有问题,只是不明白为什么填写了帐号密码后还是报535错误,这里我以163邮箱为例,并使用Python讲解怎么解决535问题

1. 先编写一个最简单的发邮件的python脚本

  1. #coding: utf-8
  2. import smtplib
  3. from email.mime.text import MIMEText
  4. from email.header import Header
  5. sender = 'huochen1994@163.com'
  6. receiver = 'huochen1994@126.com'
  7. subject = 'python email test'
  8. smtpserver = 'smtp.163.com'
  9. username = 'huochen1994@126.com'
  10. password = '*********'
  11. msg = MIMEText( 'Hello Python', 'text', 'utf-8' )
  12. msg['Subject'] = Header( subject, 'utf-8' )
  13. smtp = smtplib.SMTP()
  14. smtp.connect( smtpserver )
  15. smtp.login( username, password )
  16. smtp.sendmail( sender, receiver, msg.as_string() )
  17. smtp.quit()

2. 运行结果

如果在上述代码usernamepassword,变量中填写邮箱的帐号密码那么会看到以下报错:

  1. Traceback (most recent call last):
  2. File "mail.py", line 18, in <module>
  3. smtp.login( username, password )
  4. File "/usr/lib64/python2.6/smtplib.py", line 589, in login
  5. raise SMTPAuthenticationError(code, resp)
  6. smtplib.SMTPAuthenticationError: (535, 'Error: authentication failed')

3. 解决方法

调用163邮箱服务器来发送邮件,我们需要开启POP3/SMTP服务,这时163邮件会让我们设置客户端授权码,这个授权码替代上面代码部分的passwd即可成功发送邮件

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注