如何避免谷歌邮件服务器要求我通过浏览器登录?

Jua*_*hin 39 email gmail captcha google-apps

我正在尝试使用Google Apps配置的电子邮件从Django发送电子邮件,我在settings.py文件中的配置如下所示:

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'contact@mydomain.com'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
Run Code Online (Sandbox Code Playgroud)

当我尝试使用以下方式发送电子邮件时:

from django.core.mail import send_mail

send_mail("Happy new year", "We wish you the best for 3001",
    "contact@mydomain.com", ["someuser@gmail.com"])
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

SMTPAuthenticationError: 
(535, '5.7.1 Please log in with your web browser and then try again. 
 Learn more at
 5.7.1 https://support.google.com/mail/bin/answer.py?answer=78754 k2sm758604obl.14')
Run Code Online (Sandbox Code Playgroud)

由于我正在使用没有图形用户界面的远程服务器,我甚至无法尝试从浏览器登录.

Has*_*lan 43

只需访问 https://accounts.google.com/DisplayUnlockCaptcha 并点击"继续"即可.这将允许从其他服务器访问.

  • 2020年仍然有效。这赢得了巫毒魔法奖 (2认同)

etu*_*usm 32

在黄瓜/水豚/硒测试中,我一直在弄乱这个问题几个小时 - 发现了一些愚蠢的东西,可以很好地解决这个错误,保证

太熟悉的错误:

Please log in via your web browser: https://support.google.com/mail/accounts/answer/78754 (Failure) (Net::IMAP::NoResponseError)
Run Code Online (Sandbox Code Playgroud)

事实证明,有两个"允许更少安全的应用程序"切换,需要更改以允许来自未知设备/ IMAP的登录.

一个在这里:https://myaccount.google.com/security?pli = 1 #connectedapps(页面底部)

还有一个:https://www.google.com/settings/security/lesssecureapps

需要更改这些GODFORSAKEN TOGGLES以摆脱此错误消息.

编辑:来自用户Milothicus(/sf/users/247661851/):在myaccount.google.com的"登录和安全"下,选择"已连接的应用和网站".这也有一个"允许不太安全的应用程序"的选项.打开这个后,我的服务器现在可以发送一封自动电子邮件.


jas*_*xir 13

当我尝试访问我的帐户时,我收到了此电子邮件,其中包含此链接. https://www.google.com/settings/security/lesssecureapps

完成测试后,您可以打开然后关闭.


Jua*_*hin 7

我从Google Apps支持获得以下回复:

您需要打开外向中继.去做这个:

  1. 通过google.com/a/yourdomain.com登录您的帐户
  2. 单击"设置"选项卡,然后在左列中选择"电子邮件".
  3. 在"出站中继"部分中,选择允许用户在配置域外托管的"发件人"地址时通过外部SMTP发送邮件.
  4. 单击保存更改.

他们还提供了帮助链接:http://support.google.com/a/bin/answer.py?hl = zh-CN&answer = 176054

打开出站中继并使用代理再次登录Webmail(感谢@DaniloBargen和@joshcartme)问题已解决.我已经阅读了解释出站中继是什么的链接,我不确定为什么我需要它(我不相信我使用的是外部SMTP服务器).

由于我不确定这是解决问题的原因,因此在得到确认之前我不会将回复标记为已接受.

  • 自从您上次更新答案后,我认为此过程已更改.我遇到了同样的错误,我所做的是通过浏览器登录我的帐户,然后转到https://accounts.google.com/DisplayUnlockCaptcha(我从[here]访问(https://support.google. com/mail/answer/14257?hl = en))然后通过Django发送电子邮件.现在客户端被识别,我可以继续通过Django中的地址发送邮件. (5认同)

jos*_*tme 5

设置到相关服务器的ssh隧道,以便您可以从家用计算机使用服务器的IP登录到gmail Web客户端.您可能需要隧道端口80和端口443,可能只需要443.通过Web客户端登录后,问题应该根据SMTPAuthenticationError中列出的知识库文章消失.

以下是如何设置隧道的示例:http: //www.noah.org/wiki/SSH_tunnel#simple_port_forwarding_.28SSH_tunneling.29

  • 使用隧道连接到其他网络的更简单方法是使用动态隧道(`ssh -D 6789 remotehost`),然后在Firefox中将`localhost:6789`设置为SOCKS5-Proxy.那么你基本上是在浏览器的远程网络中,localhost是远程主机. (6认同)

fin*_*pin 5

选项#1(这对我有用):

Please log in with your web browser and then try again. Learn more etc.尝试从我的Web应用程序发送电子邮件时收到错误后,我从本地计算机通过浏览器登录到该电子邮件.

登录后,顶部有一个黄色通知栏,询问我是否允许外部应用程序访问我的邮件.我确认了这一点,Google要求我在接下来的10分钟内从应用程序登录该帐户.这将列出应用程序的白名单.

选项#2:

如果选项#1不适合您,请尝试以下方法:http://www.rocketideas.com/2012/05/gmail-error-password-not-accepted-from-server-solved/