【问题标题】:Django Gmail auth fails despite correct credentials尽管凭据正确,Django Gmail 身份验证失败
【发布时间】:2022-01-10 16:53:13
【问题描述】:

我通过 gmail 从 django 发送邮件突然停止工作。它已经运行了一年多,所以我认为我的基本设置应该仍然没问题。有问题的 Google 帐户启用了 2FA,并且在下面的配置中使用的密码是生成的 app-password,而不是主帐户密码。我已经通过浏览器登录了 Gmail,并检查了它没有被锁定并且没有超过配额。

settings.py

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_USE_TLS = True
EMAIL_PORT = 587 
EMAIL_HOST_USER = '<MY-MAIL-ADDRESS>'
EMAIL_HOST_PASSWORD = '<PASSWORD>'
DEFAULT_FROM_EMAIL = '<MY-MAIL-ADDRESS>'

我已经使用以下命令验证了我的凭据:(ofc shell 扩展不起作用,我只是将命令的输出粘贴到该位置)

$ openssl s_client -connect smtp.gmail.com:587 -starttls smtp
>AUTH PLAIN $(echo -ne '\0MY-MAIL-ADDRESS\0PASSWORD' | base64)
>235 2.7.0 Accepted

但是,如果我尝试使用 send_mail 它会弹跳:

In [1]: from django.core.mail import send_mail                                                                                                                           
                                                                                                                                                                         
In [2]: send_mail('Subject', 'This is a test message', 'MY-MAIL-ADDRESS', ('recipient@address.com',))  
 (Output shortened)
SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted. Learn more at\n5.7.8  https://support.google.com/mail/?p=BadCredentials r17sm9826202wmq.5 - gsmtp')

关于什么可能(突然)出错的任何提示?

【问题讨论】:

  • 检查这个答案。 enter link description here 干杯:)
  • 我想你可以在这里找到解决这个问题的方法。 enter link description here
  • @VikramChoudhary 这不适用于我的情况。 “不太安全的应用程序”设置仅适用于未启用 2fa 的帐户。如果您有 2fa,则需要使用特定于应用程序的密码(我正在使用,如上所述)。

标签: django authentication gmail


【解决方案1】:

事实证明,我们已被 Google 列入黑名单。

我使用guide 将我的网络服务器添加到 IP 白名单。之后,邮件又开始工作了。

有趣的是,即使是 Google 的支持者(对于付费的 Google Workspace 帐户,而不是免费的 gmail)也无法告诉我这一点,我不得不自己尝试

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 2016-05-10
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    相关资源
    最近更新 更多