Python发送邮件程序遇SMTPAuthenticationError认证错误求助
解决Gmail SMTP认证错误(smtplib.SMTPAuthenticationError: 535)
你运行以下Python邮件发送代码时遇到了SMTP认证错误:
from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.image import MIMEImage from pathlib import Path import smtplib message = MIMEMultipart() message["from"] = "Sarmad Alsaadi" message["to"] = "testpythonmail54@gmail.com" message["subject"] = "This is a test" message.attach(MIMEText("Body", "plain")) with smtplib.SMTP(host="smtp.gmail.com", port=587) as smtp: smtp.ehlo() smtp.starttls() smtp.login("testpythonmail54@gmail.com", "acrobat12345") smtp.send_message(message) print("Sent........")
错误信息:
File "e:\Tutorials\Mosh\mastery_course\sending_emails.py", line 16, in <module> smtp.login("testpythonmail54@gmail.com", "acrobat12345") File "C:\Program Files\Python311\Lib\smtplib.py", line 750, in login raise last_exception File "C:\Program Files\Python311\Lib\smtplib.py", line 739, in login (code, resp) = self.auth( ^^^^^^^^^^ File "C:\Program Files\Python311\Lib\smtplib.py", line 662, in auth raise SMTPAuthenticationError(code, resp) smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted. Learn more at\n5.7.8 Check Gmail through other email platforms - Gmail Help s7-20020adfeb07000000b002bff1de8d4bsm11043112wrn.49 - gsmtp')
核心原因
Gmail默认禁止第三方客户端使用普通账号密码登录SMTP服务,必须使用应用专用密码(需开启两步验证),启用“不太安全的应用访问”的方式现已逐步停用,不推荐使用。
解决步骤
开启两步验证
- 登录你的Gmail账号,进入账号安全设置页面
- 找到“两步验证”选项,按照引导完成开启流程
生成应用专用密码
- 开启两步验证后,在安全设置中找到“应用专用密码”
- 选择应用类型为“邮件”,设备可选择“其他”(自定义名称,比如Python SMTP)
- 生成16位的应用专用密码,复制该密码
替换代码中的密码
将代码里smtp.login方法中的密码替换为刚生成的应用专用密码,示例:smtp.login("testpythonmail54@gmail.com", "生成的16位应用密码")
额外检查
- 确认SMTP服务器地址(
smtp.gmail.com)和端口(587)正确 - 代码中已调用
starttls()启用加密连接,这是Gmail SMTP的强制要求
内容的提问来源于stack exchange,提问作者Sarmad
相关产品推荐
相关产品推荐

