Django SMTP认证错误

38 投票
16 回答
69924 浏览
提问于 2025-05-01 03:00

我刚开始学习Django,正在用它开发一个网页应用。我已经成功地在我的应用中设置了注册功能,使用的是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')
暂无标签

16 个回答

2

你需要开启对不太安全设备的支持:https://www.google.com/settings/security/lesssecureapps

3

这个方法对我有效:

  1. 首先,开启你 Gmail 账户的双重身份验证。

接着,从 Google 为你的 Gmail 账户创建一个应用密码。这个密码是一个16位的代码。把它放到 settings.pyenv.py 文件里,格式是 EMAIL_HOST_PASSWORD = '你从 Gmail 得到的16位代码',同时记得在 Django 的配置变量中也添加这个密码。

5

对我来说,我确实开启了不太安全的应用选项,但还是遇到了SMTP错误。以下是我解决这个问题的方法。

访问 https://accounts.google.com/DisplayUnlockCaptcha,然后点击继续,允许访问你的Google账户。接着再试着在Django中重置密码。

8

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

所以解决办法是:

开启不太安全的应用。

但是仅仅开启这个似乎现在不够。 谷歌不允许应用使用你默认的Gmail密码发送消息。因此,要发送消息,你需要按照以下两个简单步骤操作:

  1. 开启你的Gmail账户的双重验证。 点击这里开启。

  2. 然后为你的Gmail账户创建一个应用密码。这个密码是16位的代码。把它放在 settings.py_credentials.py 文件中,格式是:EMAIL_HOST_PASSWORD = '这个16位的代码' 点击这里了解如何设置你的应用密码

这样就解决问题了!

注意:只有在你为账户开启了双重验证后,才能创建应用密码。

76

最近,谷歌的认证系统有了一个变化,这意味着你需要“允许不太安全的应用访问”你的谷歌账户,才能让这个功能正常工作。

在你的错误提示中,建议你访问这个链接: https://support.google.com/mail/answer/78754

在那个页面上:

第2步让你尝试 显示解锁验证码

第3步解释了如何允许不太安全的应用访问。简单来说:

允许不太安全的应用,选择“允许”,这样不太安全的应用就可以访问你的谷歌账户。我们不推荐这个选项,因为这可能会让别人更容易访问你的账户。

撰写回答