34

我是 django 新手,正在使用 django 开发 Web 应用程序。我已经在我的 Web 应用程序中使用Userena成功设置了注册功能,并且可以使用验证电子邮件注册为用户。我可以在我的 settings.py 文件中显示我的 SMTP 设置

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'raihncse@gmail.com'
DEFAULT_FROM_EMAIL = 'raihncse@gmail.com'
SERVER_EMAIL = 'raihncse@gmail.com'
EMAIL_HOST_PASSWORD = '**************'

在我更改 EMAIL_HOST_PASSWORD 之前一切都很好

事实上,出于某种原因,我必须更改该 SERVER_EMAIL(raihncse@gmail.com) 的先前密码。我已经根据新的 SERVER_EMAIL 密码编辑了 EMAIL_HOST_PASSWORD。

但是现在,如果我想注册为新用户,我将面临以下错误

SMTPAuthenticationError at /accounts/signup/
(534, '5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbvNq\n5.7.14 S3l1pFXENupDa_SdPphNHrnzeLPUOyf6O0l1s31w7h_UARx11P89AxPeeZ6xBi2KeQRjsw\n5.7.14 nvpxZhPVv771W9ljEDyeWnqpqv3_nakuPo36BEl3IlYj9qVujNB5cm0TYFf9LQAxRjFdda\n5.7.14 xh-y5spA9zIQONDsvRRgN3e0DXoIkgxTO3Mu75IaACi-XlvFtFfPBiQ81gUrBZ_PhZsBmh\n5.7.14 ajsSf-flNEmoSydyOTNdmwdB0__8> Please log in via your web browser and\n5.7.14 then try again.\n5.7.14 Learn more at\n5.7.14 https://support.google.com/mail/bin/answer.py?answer=78754 40sm12125121qgi.47 - gsmtp')
4

13 回答 13

72

谷歌身份验证系统的一项相对较新的变化意味着您将不得不“允许不太安全的应用程序访问”您的谷歌帐户,才能使其正常工作。

在您的错误中,建议您访问此链接: https: //support.google.com/mail/answer/78754

在那个页面上:

步骤 #2 要求您尝试显示解锁验证码

第 3 步解释了如何允许不太安全的应用程序访问。总之:

转到允许安全性较低的应用程序并选择“允许”以允许安全性较低的应用程序访问您的 Google 帐户。我们不建议使用此选项,因为它可能会使某人更容易访问您的帐户。

于 2014-11-02T10:11:30.540 回答
5

谷歌最近的安全协议不允许您通过不太安全的应用程序发送消息。

所以解决方法是:

打开不太安全的应用程序。

但是现在仅启用此功能似乎不起作用。Google 不允许应用使用您的默认 gmail 密码发送消息。因此,要发送消息,您必须遵循以下两个简单步骤:

  1. 打开您的 gmail 帐户的两因素身份验证。链接以将其打开。

  2. 然后从 Google 为您的 gmail 帐户创建应用程序密码。这将是一个 16 位数的代码。将其放在settings.py_credentials.py中:EMAIL_HOST_PASSWORD = 'sixt eend igit code' 链接以了解如何设置电子邮件的应用程序密码

还有宾果游戏!问题将得到解决。

注意: 只有为您的帐户启用了 2 因素身份验证,才能创建应用密码。

于 2019-06-25T21:49:16.777 回答
5

对我来说,即使我收到 SMTP 错误,我也确实打开了不太安全的应用程序选项。这就是我解决它的方法。

转到https://accounts.google.com/DisplayUnlockCaptcha并通过单击继续允许访问您的 Google 帐户,然后尝试在 Django 中再次重置密码。

于 2019-10-17T11:28:35.300 回答
2

这对我有用:

  1. 打开您的 Gmail 帐户的两因素身份验证。

然后从 Google 为您的 Gmail 帐户创建一个应用密码。这将是一个 16 位数的代码。将其放入settings.pyenv.py通过EMAIL_HOST_PASSWORD = 'sixteen-digit code you get from your Gmail'并记住将它们添加到 Django 配置变量中

于 2020-03-28T23:49:56.993 回答
2

您需要打开对安全性较低的设备的支持: https: //www.google.com/settings/security/lesssecureapps

于 2016-03-30T15:12:05.137 回答
2

如果您正在与 AWS 集成,我的建议是使用 SES(简单电子邮件服务)。您可以在不会引发 SMTPAuthenticationError 的 SES 中添加和验证您的电子邮件地址。

我遵循了这个- https://medium.com/hackernoon/the-easiest-way-to-send-emails-with-django-using-ses-from-aws-62f3d3d33efd

于 2020-11-20T09:13:58.090 回答
1

确保密码EMAIL_HOST_PASSWORD是您可以用来登录 gmail 帐户的密码EMAIL_HOST_USER。要确认这一点,请转到gmail.comEMAIL_HOST_USER并使用 中的密码登录到 gmail 帐户EMAIL_HOST_PASSWORD。如果它在没有任何形式的两步身份验证的情况下一次性工作,那么你就设置好了。否则,允许使用安全性较低的应用程序并使用其他答案中的教程禁用显示解锁验证码。对我来说,两者都做,最重要的是,使用正确的密码对我有用。

于 2021-08-20T02:31:35.123 回答
1

这对我有用:

我首先email_info.py在与以下相同的文件夹中创建settings.py

from .email_info import *

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'youremail@gmail.com'
EMAIL_HOST_PASSWORD = 'your_pass'
EMAIL_PORT = 587

然后在settings.py我添加:

from .email_info import *

EMAIL_USE_TLS = EMAIL_USE_TLS
EMAIL_HOST = EMAIL_HOST
EMAIL_HOST_USER = EMAIL_HOST_USER
EMAIL_HOST_PASSWORD = EMAIL_HOST_PASSWORD
EMAIL_PORT = EMAIL_PORT

最后在views.py

from django.conf import settings
from django.core.mail import send_mail

send_mail(subject, message, from_email, to_list, fail_silently=Tre)

这是解释此过程的 YouTube 视频:https ://www.youtube.com/watch?v=51mmqf5a0Ss

于 2018-07-18T05:56:00.690 回答
0

2022 年 2 月更新:

尝试2 件事以使用Django发送Gmail

  1. 允许安全性较低的应用:开启↓↓↓</p>

    https://myaccount.google.com/lesssecureapps

  2. 允许访问您的 Google 帐户:(点按“继续”)↓↓↓</p>

    https://accounts.google.com/DisplayUnlockCaptcha

于 2022-02-06T15:47:07.527 回答
0

您还可以为 Django 应用程序生成专用的电子邮件密码。

1- 请检查此链接https://support.google.com/accounts/answer/185839?co=GENIE.Platform%3DDesktop&hl=en

2- 从 GOOGLE 帐户打开 2 步验证设置--> 管理您的帐户 --> 安全 ---> 2 步验证

3- 第三,为 Django 创建一个专用通行证,它将是 16 个字符。

4-您可以在下面找到 django 电子邮件设置

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'your_account@gmail.com'
EMAIL_HOST_PASSWORD = '16characters password'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
于 2020-11-24T23:49:06.427 回答
-1

我认为您需要打开谷歌不太安全的应用程序。登录您的帐户并转到不太安全的应用程序来更改您的设置。这不好,但您可以尝试您的代码。

于 2017-07-13T08:58:32.180 回答
-1

如果您已经允许访问不太安全的应用程序并且仍然遇到问题,请转到您的帐户>>登录和安全>>设备中的通知和活动,并查看是否有设备尝试访问并且谷歌拒绝了它,请允许使用权。

于 2017-11-09T13:20:44.350 回答
-2

确保您在允许安全性较低的应用程序页面 ( https://www.google.com/settings/security/lesssecureapps ) 中选择了“打开”选项。我建议您在选择“打开”单选按钮后刷新一次页面。单选按钮选择不应移动“关闭”

它是如何自动“关闭”的。

于 2016-11-15T12:30:12.107 回答