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

写在最前面

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

代码如下:

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

msg = MIMEText('老大,我今天需要请假。', 'plain', 'utf-8')  # 发送内容
msg['From'] = formataddr(["frank", 'xxxxxxx@163.com'])  # 发件人
msg['To'] = formataddr(["jack", 'xxxx@qq.com'])  # 收件人
msg['Subject'] = "【请回复】"  # 主题

server = smtplib.SMTP("smtp.163.com", 25) # SMTP服务
server.login("xxxxxx@163.com", "密码") # 邮箱用户名和密码  把密码改成授权码就行了
server.sendmail('xxxxxx@163.com', ['xxxxxxxx@qq.com', ], msg.as_string()) # 发送者和接收者
server.quit()

运行后:

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

解决办法:

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

原文地址:https://www.cnblogs.com/1a2a/p/9233682.html