SMTPAuthenticationError 5.7.14 请通过您的网络浏览器登录\n5.7.14

Fab*_*res 9 python gmail smtplib

我有一个脚本,它会定期向收件人列表发送报告。一切正常,直到今天凌晨 4 点,当我检查我的收件箱时,报告没有出现。

通过调试代码:

import smtplib
username="my.user.account@gmail.com"
password="my.correct.password"

server=smtplib.SMTP('smtp.gmail.com',587)
server.ehlo()
server.starttls() 
server.ehlo()
server.login(username,password)

#if login worked, it should send a message, but it is not working, so I will suppress this part

server.quit()
Run Code Online (Sandbox Code Playgroud)

我收到以下(旧的)结果:

(250, b'smtp.gmail.com 为您服务, [SERVERIP]\nSIZE 35882577\n8BITMIME\nSTARTTLS\nENHANCEDSTATUSCODES\nPIPELINING\nCHUNKING\nSMTPUTF8') (220, b'2.0.0 准备启动 TLS') ( , b'smtp.gmail.com 为您服务,[SERVERIP]\nSIZE 35882577\n8BITMIME\nAUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH\nENHANCEDSTATUSCODES\nPIPELINING 最近调用\nSMTPCHUNKFile\nSMTPCHUNKFile\n8BITMIME\n <pyshell#52>", line 6, in server.login(username,password) File "C:\Python\Python36\lib\smtplib.py", line 729, in login raise last_exception File "C:\Python\Python36 \lib\smtplib.py",第 720 行,在登录名 initial_response_ok=initial_response_ok) 文件“C:\Python\Python36\lib\smtplib.py”,第 641 行,在 auth 中引发 SMTPAuthenticationError(code, resp) smtplib。SMTPAuthenticationError:(534,b'5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbu5\n5.7.14 wJL_YP3XLTGPzP_UBwtyCHhzHE1y1G8R0iHaz_pxG9fBH4CePmbXuAE1qH8HvnXTgqcmKi \ n5.7.14 P23_lJoZX_pfbNUOxQp4Fr2VhgbAjnlu3ZL_pcjVBd-TTMUVCAah6Q2-Vq5Dffm9s4UWwl \ n5.7.14 J7V7CjE06eHkw1IlphV4lLbRKVp9Hk7vC92zLQ5zM27cbQiTM8W3lEgm>请通过网络浏览器登录\n5.7.14,然后重试。\n5.7.14 了解更多信息\n5.7.1414 在\n5.7.14 了解更多信息14 在\n5.7.14 了解更多信息 https://support.google.com/mail/answer/78754 r131sm2964505vkr.40 - gsmtp')

我尝试过的事情

允许不太安全的应用程序(如https://www.google.com/settings/security/lesssecureapps 中所示):自从我创建帐户以来,此标志设置为 true。

禁用验证码(如https://accounts.google.com/DisplayUnlockCaptcha 所示):多次访问此 URL。没运气。

通过浏览器登录:在任何计算机上通过任何 Internet 浏览器登录时都可以正常工作,尽管在第一次我必须插入发送到帐户恢复电话的代码。

我遇到了其他可以尝试的事情,但我不确定它是否可行:

  • 特定应用密码
  • Oauth2
  • 更改或重置密码

我可能会尝试 oauth2,但是它需要更改我的代码,由于服务器中的一些限制,我想避免这种更改。

Mo *_*igi 9

我也有这个问题。我的邮件转发器脚本已经正常工作了 6 个月以上,随机开始抛出此错误:

534, b'5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbts\n5.7.14 y2ku2-8KrWsn_dAUhnkssuTuESwaeG-DNn9hWBpsSpJCmVL ZhH24jzJfd-5bHUdh993dJ7\n5.7.14 a5LsAOJrheyT0cRXIhMSbycqvMAC7sNrizO5qU_6iDescJcQa-QqUUCFVH7IZoWF9uXyrv\n5.7.14 HC9XzAW-pBwgUjV4i_ts8CNhB_yZf2JHOi-wl6gZ9jwAiYLWx DPe7epI> Please log\n5.7.14 in via your web browser and then try again.\n5.7.14 Learn more at\n5.7.14 https://support.google.com/mail/answer/78754 y5sm3059043 9pge.49 - gsmtp

经过一番研究,我尝试了以下所有步骤:

  • 在 Google 设置中检查允许低安全应用(它已经打开,尝试关闭并重新打开)
  • 尝试解锁验证码链接:https : //accounts.google.com/DisplayUnlockCaptcha
  • 手动输入和输出 Google 帐户(使用电话号码验证)
  • 更改帐户密码
  • 启用和禁用 2FA
  • 其他的数不胜数...

起初似乎没有任何实际效果。但是,在完成上述所有步骤后,脚本在 24 小时后重新开始工作,无需任何修改。


Cha*_* Gm 9

这个问题的解决方案似乎是:

执行此操作应该会解锁帐户,但最多可能需要一个小时才能生效。


Fab*_*res 6

我已经使用 Google Gmail API 解决了这个问题。谷歌似乎阻止或限制了我的帐户通过未知设备登录,因为我只能通过浏览器登录,并且在我确认电话号码和短信发送的代码后。

所以我决定放弃使用 smtplib 并使用 Google 用于 Gmail 的 API 实现访问:https : //developers.google.com/api-client-library/python/ https://developers.google.com/gmail/ api/指南/发送

希望这可以帮助其他遇到此问题的人。


Rya*_*ing 6

我最近遇到了这个问题。我已经使用相同的脚本 3 年多,但它突然停止工作。上述解决方案对我不起作用。联系谷歌后,这里是解决问题的方法(请注意,更改可能需要几个小时才能传播 - 最多 24 小时,但通常不会那么长)

  • 在谷歌设置中允许低安全应用(对自身没有影响,但可能与完整解决方案有关)

  • 尝试解锁验证码链接:https : //accounts.google.com/DisplayUnlockCaptcha(本身没有影响,但可能与完整解决方案有关)

  • 管理控制台 > 应用程序 > G Suite > Gmail > 用户设置 > 机密模式 -->禁用机密模式

  • 管理控制台 > 应用程序 > G Suite > Gmail > 最终用户访问 -->开启“允许每个用户的出站网关”

  • 第二步成功了。如果您登录了多个 Google 帐户,请确保在 URL 中使用正确的编号(例如 https://accounts.google.com/b/2/DisplayUnlockCaptcha) (4认同)