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

时间:2019-02-12 19:02:43

标签: 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()

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

  

(250,b'smtp.gmail.com为您服务,[SERVERIP] \ nSIZE   35882577 \ n8BITMIME \ nSTARTTLS \ nEHANCEDSTATUSCODES \ nPIPELINING \ nCHUNKING \ nSMTPUTF8')   (220,b'2.0.0准备启动TLS')(250,b'smtp.gmail.com   服务,[SERVERIP] \ nSIZE 35882577 \ n8BITMIME \ nAUTH LOGIN PLAIN XOAUTH2   普通客户代币持有人   XOAUTH \ nEHANCEDSTATUSCODES \ nPIPELINING \ nCHUNKING \ nSMTPUTF8')   追溯(最近一次通话):文件“”,第6行,在          server.login(用户名,密码)文件“ C:\ Python \ Python36 \ lib \ smtplib.py”,第729行,登录       在登录时引发last_exception文件“ C:\ Python \ Python36 \ lib \ smtplib.py”,第720行       auth中的文件“ C:\ Python \ Python36 \ lib \ smtplib.py”,第641行,initial_response_ok = initial_response_ok)       引发SMTPAuthenticationError(code,resp)smtplib.SMTPAuthenticationError:(534,b'5.7.14    请   通过网络浏览器登录\ n5.7.14,然后重试。\ n5.7.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,但是它需要更改我的代码,由于服务器的某些限制,我想避免这样做。真正令我惊讶的是,它工作正常,突然停止了!

任何帮助将不胜感激!

9 个答案:

答案 0 :(得分:1)

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

因此,我决定放弃使用smtplib,并使用Google用于Gmail的API实现了访问权限: https://developers.google.com/api-client-library/python/ https://developers.google.com/gmail/api/guides/sending

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

答案 1 :(得分:1)

解决方案似乎是:

这样做应该可以解锁帐户,但可能需要一个小时才能生效。

答案 2 :(得分:0)

我也遇到了这个问题。我的正常运行了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小时后无需任何修改即可再次开始工作。

答案 3 :(得分:0)

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

    Google设置中的
  • ALLOW 安全性较低的应用程序(不会单独起作用,但可能与完整的解决方案有关)

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

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

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

答案 4 :(得分:0)

尝试更改电子邮件的密码,然后使用新密码重新运行脚本。这对我有用。您可能已收到登录尝试电子邮件,并确保您验证脚本所做的登录。

enter image description here

答案 5 :(得分:0)

我尝试过,但是没有用。只需单击“是,是我”,然后关闭“安全应用程序访问量较少”。

答案 6 :(得分:0)

即使我遇到了这个问题,也请尝试执行以下步骤,因为google最初无缘无故地阻止了连接:

  1. 尝试打开和关闭不太安全的应用访问权限。

  2. 注销到您的帐户,然后再次登录

  3. 更改密码并点击脚本 最后打印确认,如下所示:

      print('Your message has been sent!!')
    

如果这不起作用,请在24小时后登录,这肯定会起作用!

答案 7 :(得分:0)

如果您在同一台设备上使用多个帐户登录,则必须退出所有帐户并将此 https://accounts.google.com/b/0/DisplayUnlockCaptcha 复制并粘贴到您的网址中。您将被定向到您的 gmail 登录页面。选择您在脚本中使用的帐户,输入您的用户名和密码。该链接会将您定向到验证码页面,然后单击继续。确保在解锁验证码并运行脚本后不要关闭选项卡。如果这是第一次有效,您不必总是解锁验证码。

答案 8 :(得分:0)

就我而言,我使用的是通过 SSH 访问的云服务器中的帐户。当我从 SSH 终端访问它时,我必须建立一个 SSH 隧道才能从我的本地浏览器访问到相应的 Google URL:

  1. 创建 SSH 隧道:ssh -D 9090 -C -N user@server-url
  2. 转到 Firefox 中的设置,搜索 proxy 选项,然后将 SOCK 服务器 设置为 127.0.0.1 并将 端口 设置为 { {1}}:

Setting up the proxy

  1. 现在您可以检查您当前的 IP 是否与 myip.com 中的远程服务器相同。
  2. 现在访问 Google URL 以使用电子邮件帐户登录。
  3. 就我而言,也有必要访问 https://www.google.com/accounts/DisplayUnlockCaptcha