Django中未发送密码重置电子邮件

时间:2020-06-07 12:26:58

标签: python django python-3.x django-views django-templates

首先,我想澄清一下,我已经在Stack Overflow上查看了与此相关的所有其他问题,但我无法解决该问题。

因此,我遇到的问题是,即使一切都表明该电子邮件已经发送,我仍未在自己的网站上收到密码重置电子邮件。我之所以这样说,是因为我在屏幕上看到已发送电子邮件的确认信息,并且还会在控制台中显示该电子邮件(请参见下文)。

enter image description here

这是我的电子邮件设置:

EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"
EMAIL_USE_TLS = True
EMAIL_HOST = "localhost"
EMAIL_PORT = 25
EMAIL_HOST_USER = os.environ.get("EMAIL_ADDRESS")
EMAIL_HOST_PASSWORD = os.environ.get("EMAIL_PASSWORD")

这是我的密码重置网址:

from django.conf.urls import url
from django.core.urlresolvers import reverse_lazy
from accounts.views import change_password
from django.contrib.auth.views import (
    password_reset,
    password_reset_done,
    password_reset_confirm,
    password_reset_complete)

urlpatterns = [
    url(r'^$', password_reset, name='password_reset'),
    url(r'^reset-password/done/$', password_reset_done,
        name='password_reset_done'),
    url(r'^reset-password/confirm/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$',
        password_reset_confirm, name='password_reset_confirm'),
    url(r'^complete/$', password_reset_complete,
        name='password_reset_complete'),
    url(r'^change-password/$', change_password, name='change_password'),
]

任何反馈都非常感谢!

谢谢。

1 个答案:

答案 0 :(得分:1)

您指定为EMAIL_BACKEND

EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"

这是Console backend [Django-doc],因此它不会发送电子邮件,但会将电子邮件打印到控制台。例如,可以将其用于测试目的。

您可以将SMTP backend [Django-doc]例如指定为后端:

EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"