Django SMTPAuthenticationError

时间:2014-11-02 08:46:34

标签: python django

我是django的新手,并使用django开发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')

13 个答案:

答案 0 :(得分:45)

Google认证系统中相对较新的变化意味着您将不得不允许不太安全的应用访问权限。到您的Google帐户,以便使其正常运行。

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

在该页面上:

第2步要求您尝试Displaying an Unlock Captcha

步骤#3解释了如何允许不太安全的应用访问。总结:

  

转到Allow less secure apps并选择&#34;允许&#34;让不太安全的应用访问您的Google帐户。我们不建议使用此选项,因为这可能会让某人更容易访问您的帐户。

答案 1 :(得分:4)

转到“允许安全性较低的应用程序”,然后选择“允许”,让安全性较低的应用程序访问您的Google帐户。通常,建议不要启用此选项,因为它可以使某人更容易访问您的帐户。 https://www.google.com/settings/security/lesssecureapps

然后点击此链接 https://accounts.google.com/b/0/DisplayUnlockCaptcha

答案 2 :(得分:2)

您需要为不太安全的设备启用支持: https://www.google.com/settings/security/lesssecureapps

答案 3 :(得分: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

答案 4 :(得分:1)

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

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

答案 5 :(得分:1)

在这种情况下,只需转到

https://accounts.google.com/DisplayUnlockCaptcha

(Gmail登录帐户与Django设置中定义的帐户相同)。

答案 6 :(得分:1)

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

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

答案 7 :(得分:0)

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

答案 8 :(得分:0)

如果您已经允许访问不太安全的应用,但仍然遇到问题请访问您的帐户&gt;&gt;登录和安全&gt;&gt;您的设备中的通知和活动,并查看是否有设备试图访问并谷歌拒绝该设备,允许该访问。

答案 9 :(得分:0)

Google的最新安全协议不允许您通过不太安全的应用发送消息。

因此解决方法是:

  

打开不太安全的应用。

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

  
      
  1. 打开您的gmail帐户的两因素身份验证。 Link to turn it on.

  2.   
  3. 然后从Google为您的Gmail帐户创建应用密码。这将是一个16位代码。通过以下方式将其放在 settings.py _credentials.py 中:EMAIL_HOST_PASSWORD = 'sixt eend igit code'

  4.   

还有宾果!问题将会解决。

注意: 仅当您为帐户启用了2因子验证后才能创建应用密码。

答案 10 :(得分:0)

这对我有用: 1.启用您的Gmail帐户的两个因素验证。

然后通过Google为您的Gmail帐户创建应用密码。这将是一个16位代码。通过EMAIL_HOST_PASSWORD =“您从Gmail获取的16位代码”将其放在settings.py或env.py中,并记住也将它们添加到Django配置变量中

答案 11 :(得分:0)

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

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

2-从GOOGLE帐户中打开“两步验证”设置->管理您的帐户->安全性---> 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

答案 12 :(得分:-1)

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

一些如何自动“关闭”。