【问题标题】:django not sending mail even if password is wrong its showing email sendeddjango 即使密码错误也不发送电子邮件它显示的电子邮件发件人
【发布时间】:2023-03-19 20:55:01
【问题描述】:

在过去的 3 个小时里,我一直在努力解决这个问题,但找不到。我的问题是 Django 没有发送电子邮件,即使我输入了错误的用户名和密码,它也显示成功。它从不发送邮件。请告诉我我做错了什么。这是我的 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 = '******************'
EMAIL_HOST_PASSWORD = '********'

我的 urls.py 文件: path('reset_password_complete',auth_views.PasswordResetCompleteView.as_view(),name='password_reset_complete'), path('reset/<uidb64>/<token>/',auth_views.PasswordResetConfirmView.as_view(), name='password_reset_confirm'), path('reset_password_sent/',auth_views.PasswordResetDoneView.as_view(),name='password_reset_done'), path('reset_password/',auth_views.PasswordResetView.as_view(),name="reset_password"),

我使用的是 Django 的默认视图,但即使我的密码错误或用户名错误,它也会显示我的电子邮件已发送但未发送。请帮助我。

【问题讨论】:

  • 我还允许在我的帐户中使用“允许不太安全的应用程序”
  • 但是还是不行
  • 在我看来,我的 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 = '******************' EMAIL_HOST_PASSWORD = '********' 它照常工作

标签: python-3.x django


【解决方案1】:

确保您已按照以下两个答案中提到的说明进行操作:

Django sending email with google SMTP

Sending emails on Django using SMTP and Gmail

如果您仍然面临问题并且时间紧迫,我建议您使用SendGrid 的免费计划,然后将其添加到您的 settings.py 文件中:

# settings.py

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
SENDGRID_API_KEY = 'YourAPIKey'
EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = 'apikey'
EMAIL_HOST_PASSWORD = 'YourHostPassword'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'example@mai.com' # the email that you used on SendGrid

【讨论】:

  • 非常感谢您的快速回复。我只是观察到我的 seetings.py 没有检测到我在其中写的内容。我做错了什么。这是所有的 cde到目前为止,我已经输入了我的 settings.py。 STATIC_URL = '/static/' MEDIA_ROOT = os.path.join(BASE_DIR,'media') MEDIA_URL = '/media/' CRISPY_TEMPLATE_PACK = 'bootstrap4' LOGIN_REDIRECT_URL = 'blog-home' LOGIN_URL = '登录' EMAIL_BACKEND = 'django. core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.gmail.com' EMAIL_PORT = 587 EMAIL_USE_TLS = True EMAIL_HOST_USER = '********' EMAIL_HOST_PASSWORD = '*******'跨度>
  • 是我先写的东西还是类似的东西。我对 django 比较陌生。但我一定会尝试你的方式
  • 我只想说我是否将这些行添加到我的应用程序仍然工作不一样
  • 你在使用django-allauth吗?
  • 不,我使用的是 django 3.1.4
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-18
  • 2012-01-06
  • 1970-01-01
  • 2011-08-21
相关资源
最近更新 更多