【问题标题】:How to reset password using Django and gmail如何使用 Django 和 gmail 重置密码
【发布时间】:2020-08-16 20:24:32
【问题描述】:

我正在尝试让用户允许重置他们忘记的密码 我收到了这个错误

(530,b'5.7.0 需要身份验证。了解更多信息:\n5.7.0 https://support.google.com/mail/?p=WantAuthError77sm14812049pfx.85 - gsmtp', 'webmaster@localhost')

我有一些以下代码。# settings.py

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = os.environ.get('EMAIL_USER')
EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_PASS')

和 urls.py

path('password-reset', auth_views.PasswordResetView.as_view(template_name='register/passwords/password_reset.html'), name='password_reset'),
path('password-reset/done', auth_views.PasswordResetDoneView.as_view(template_name='register/passwords/password_reset_done.html'), name='password_reset_done'),
path('password-reset-confirm/<uidb64>/<token>', auth_views.PasswordResetConfirmView.as_view(template_name='register/passwords/password_reset_confirm.html'), name='password_reset_confirm'),
path('password-reset-reset', auth_views.PasswordResetCompleteView.as_view(template_name='register/passwords/password_reset_complete.html'), name='password_reset_complete'),

【问题讨论】:

标签: django gmail


【解决方案1】:

首先确保您的环境变量正常工作。它们是否显示预期值?尝试将它们打印到终端进行检查。

其次,确保在您的 gmail 帐户中注册您的应用。 this 链接会有所帮助。您可以通过更改 settings.py 中的电子邮件设置来尝试测试您的代码:

EMAIL_BACKEND = "django.core.mail.backends.filebased.EmailBackend"
EMAIL_FILE_PATH = os.path.join(BASE_DIR, "sent_mail")

这会在您的基本目录中的 sent_mail 文件夹中创建电子邮件。如果您在那里收到电子邮件,则您的代码可以正常工作。

祝你好运!

**编辑

只需为我正在创建的应用程序设置电子邮件设置并得到相同的错误。通过在我的 Google 帐户中注册该应用程序来修复它。您仅获得特定应用程序的自定义密码。将此复制到您的电子邮件密码环境变量中,它应该可以正常工作!

https://myaccount.google.com/ --> 安全性 -> 应用密码

*注意:确保添加 2 因素身份验证。

【讨论】:

  • 哦,按照您编辑的教程后它可以工作。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-04
  • 2018-01-01
  • 2015-06-29
  • 1970-01-01
  • 2011-09-15
  • 2020-04-26
相关资源
最近更新 更多