Django SMTP身份验证错误

2025-03-21 09:05:00
admin
原创
39
摘要:问题描述:我是 Django 新手,正在使用 Django 开发 Web 应用程序。我已成功使用 Web 应用程序中的Userena设置注册功能,并可以使用验证电子邮件注册为用户。我可以在我的 settings.py 文件中向您显示我的 SMTP 设置EMAIL_BACKEND = 'django.core....

问题描述:

我是 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
5.7.14 S3l1pFXENupDa_SdPphNHrnzeLPUOyf6O0l1s31w7h_UARx11P89AxPeeZ6xBi2KeQRjsw
5.7.14 nvpxZhPVv771W9ljEDyeWnqpqv3_nakuPo36BEl3IlYj9qVujNB5cm0TYFf9LQAxRjFdda
5.7.14 xh-y5spA9zIQONDsvRRgN3e0DXoIkgxTO3Mu75IaACi-XlvFtFfPBiQ81gUrBZ_PhZsBmh
5.7.14 ajsSf-flNEmoSydyOTNdmwdB0__8> Please log in via your web browser and
5.7.14 then try again.
5.7.14 Learn more at
5.7.14 https://support.google.com/mail/bin/answer.py?answer=78754 40sm12125121qgi.47 - gsmtp')

解决方案 1:

谷歌身份验证系统最近发生了一个变化,这意味着为了实现此功能,您必须“允许安全性较低的应用访问”您的谷歌帐户。

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

在该页面上:

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

步骤 3 说明如何允许安全性较低的应用程序访问。总结如下:

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

解决方案 2:

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

因此解决方法是:

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

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

  1. 启用您的 Gmail 帐户的双重身份验证。链接以启用它。

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

BINGO!问题就解决了。

注意: 仅当您为帐户启用了双重身份验证时才可创建应用程序密码。

解决方案 3:

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

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

解决方案 4:

这对我有用:

  1. 打开您的 Gmail 帐户的双重身份验证。

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

解决方案 5:

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

解决方案 6:

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

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

解决方案 7:

这对我有用:

我首先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

解决方案 8:

您还可以为 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

解决方案 9:

确保 中的密码EMAIL_HOST_PASSWORD是您可用于登录 中的 gmail 帐户的密码EMAIL_HOST_USER。要确认这一点,请访问gmail.comEMAIL_HOST_USER并使用 中的密码登录 中的 gmail 帐户EMAIL_HOST_PASSWORD。如果它一次性成功,无需任何形式的两步验证,则您已设置好。否则,请允许安全性较低的应用程序并使用其他答案中的教程禁用显示解锁验证码。对我来说,同时执行这两项操作,最重要的是,使用正确的密码对我有用。

解决方案 10:

如何从 Django 或任何库获取电子邮件:

笔记

注意:如果您的帐户使用两步验证,则它将不起作用。

首先使用您要发送电子邮件的帐户打开隐身窗口。

打开安全性较低的应用程序
然后启用它

之后导航到解锁验证码
然后启用它

之后填写你使用的图书馆的账户邮箱和密码

在Django中:

  • EMAIL_HOST_USER是电子邮件地址。例如:email@example.com

  • EMAIL_HOST_PASSWORD是电子邮件密码。例如:smtpmessages.manager@2012

运行该程序首先它不起作用,要使其起作用,请在隐身窗口中打开 Gmail。

然后会收到一封来自谷歌的电子邮件,说某个应用需要访问你的谷歌账户

打开电子邮件并单击链接,然后选择“是的,是我”,然后重试,它应该有效

谢谢你!

欲了解更多信息,请访问:通过其他电子邮件平台检查 Gmail

解决方案 11:

  1. 打开您的 Gmail 帐户的双重身份验证。

  2. 生成应用程序密码(双因素身份验证后您将获得此选项)>>选择应用程序>>选择设备(在我的情况下,应用程序是 Gmail,设备是 Windows 机器)

  3. 复制16位密码

  4. 将此密码粘贴至 EMAIL_HOST_PASSWORD = "(在此处粘贴密码)"

解决方案 12:

这并非您问题的确切答案。但考虑到您的 Google 帐户的隐私和安全,请在高级系统设置中使用环境变量。并使用“os.environ.get('Host_Email') and ('Host_Pass)”进行访问,而不是在代码中输入您的电子邮件和密码。

https://www.youtube.com/watch?v=IolxqkL7cD8

解决方案 13:

您需要使用应用密码来允许您的应用访问您的 Google 帐户。 *您可以查看我的回答,其中解释了如何生成应用密码。

使用应用程序密码登录

应用密码是一个 16 位密码,可让安全性较低的应用或设备访问您的 Google 帐号。应用密码只能用于已开启两步验证的帐号。

因此,您的应用密码16 位密码的代码如下所示:

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 = 'xylnudjdiwpojwzm' # Here

此外,自 2022 年 5 月 30 日起,谷歌就不允许您的应用使用用户名(电子邮件地址)密码访问您的谷歌帐户。所以现在,您需要用户名(电子邮件地址)应用密码才能访问您的谷歌帐户。

安全性较低的应用和您的 Google 帐户

为了帮助保障您的帐号安全,自 2022 年 5 月 30 日起,Google 不再支持使用要求您仅使用用户名和密码登录 Google 帐号的第三方应用或设备。

解决方案 14:

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

解决方案 15:

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

解决方案 16:

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

不知何故它会自动“关闭”。

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2482  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1533  
  PLM(产品生命周期管理)项目对于企业优化产品研发流程、提升产品质量以及增强市场竞争力具有至关重要的意义。然而,在项目推进过程中,范围蔓延是一个常见且棘手的问题,它可能导致项目进度延迟、成本超支以及质量下降等一系列不良后果。因此,有效避免PLM项目范围蔓延成为项目成功的关键因素之一。以下将详细阐述三大管控策略,助力企业...
plm系统   0  
  PLM(产品生命周期管理)项目管理在企业产品研发与管理过程中扮演着至关重要的角色。随着市场竞争的加剧和产品复杂度的提升,PLM项目面临着诸多风险。准确量化风险优先级并采取有效措施应对,是确保项目成功的关键。五维评估矩阵作为一种有效的风险评估工具,能帮助项目管理者全面、系统地评估风险,为决策提供有力支持。五维评估矩阵概述...
免费plm软件   0  
  引言PLM(产品生命周期管理)开发流程对于企业产品的全生命周期管控至关重要。它涵盖了从产品概念设计到退役的各个阶段,直接影响着产品质量、开发周期以及企业的市场竞争力。在当今快速发展的科技环境下,客户对产品质量的要求日益提高,市场竞争也愈发激烈,这就使得优化PLM开发流程成为企业的必然选择。缺陷管理工具和六西格玛方法作为...
plm产品全生命周期管理   0  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用