欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-02-22 15:20:58
...

写在最前面

相信看到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即可成功发送邮件