Gmail SMTP 登录身份验证失败(已更新)

问题描述 投票:0回答:2

尝试使用 SMTP 登录 Gmail 帐户时,出现此错误消息:

SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted.

导致错误的代码:

import smtplib

server = smtplib.SMTP("smtp.gmail.com", 587)
server.starttls()
server.login("[email protected]", "your_password")
message = "TEST"

server.sendmail("[email protected]", "[email protected]", message)
server.quit()
python smtp gmail smtpclient
2个回答
8
投票

自 2022 年 5 月起,Google 已禁用启用安全性较低的应用程序的功能。因此,之前启用安全性较低的应用程序的解决方案不再有效。

步骤:

  1. 进入您的发送电子邮件地址并进入设置。
  2. 找到两步验证并启用它。
  3. 在两步身份验证下,应该有一个标记为“应用程序密码”的选项卡。单击它,然后选择邮件作为应用程序和您选择的设备
  4. 使用应用程序密码生成的密码作为您的 Gmail 帐户的密码。

致谢:来源链接


0
投票

显然谷歌已经改变了设置。因此,从“2023 年 9 月”开始,您要做的就是按照以下步骤操作:

  1. 转到您的帐户设置并找到“安全”选项。
  2. 启用两步身份验证
  3. 现在您将看到一个选项“应用程序密码”。从那里创建应用程序密码。它将是16位数字
  4. 复制粘贴应用程序密码并使用它代替您的 smtp 的 google 密码。

************************ 重要************************

之后要确保的两件重要事情是(这可能会导致错误):

  1. 当您直接复制粘贴应用程序密码时,其中会有空格,例如“abcd efgh ijkl lmno”。所以请确保删除空格并将其用作“abcdefghijkllmno”
  2. 例如,如果您的 Gmail 帐户是“[电子邮件受保护]”,那么您的用户名将为“abcd123”,而不是“[电子邮件受保护]”。因此,请确保在 server.login() 中使用“abcd123”作为“用户名”参数。 所以你的 server.login(用户名, 密码) 看起来像 server.login("abcd123", "abcdefghijkllmno")

希望能解决

© www.soinside.com 2019 - 2024. All rights reserved.