首页 > 解决方案 > 未收到密码重置电子邮件

问题描述

我对 Django 很陌生。我正在通过 django 中的电子邮件重置密码。我正在使用所有 4 个默认类视图。我可以访问 PasswordResetDoneView 页面,说明页面已发送到我的邮件。但是我没有收到任何邮件。

网址.py

from django.urls import path
from . import views
from django.contrib.auth.views import (
    LoginView,LogoutView,PasswordResetView,PasswordResetDoneView,PasswordResetConfirmView,PasswordResetCompleteView
    )

urlpatterns=[
    path('',views.home),
    path('login/',LoginView.as_view(template_name='accounts/login.html'),name='login page'),
    path('logout/',LogoutView.as_view(template_name='accounts/logout.html'),name='logout page'),
    path('register/',views.registration,name='register page'),
    path('profile/',views.profile,name='profile'),
    path('profile/edit_profile/',views.edit_profile,name='edit-profile'),
    path('profile/change-password/',views.change_password,name='edit-profile'),

    path('profile/reset-password/',PasswordResetView.as_view(),name='paassword_reset_view'),
    path('profile/reset-password/done/',PasswordResetDoneView.as_view(),name='password_reset_done'),
    path('profile/reset-password/confirm/<uidb64>/<token>/',PasswordResetConfirmView.as_view(),name='password_reset_confirm'),
    path('profile/reset-password/complete/',PasswordResetCompleteView.as_view(),name='password_reset_complete'),
]

我还用必要的配置配置了 settings.py 文件。我还为发送 url 的邮件启用了不太安全的选项。设置.py

EMAIL_BACKEND = "django.core.mail.backends.filebased.EmailBackend"
EMAIL_FILE_PATH = os.path.join(BASE_DIR, "sent_emails")
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'projectexample@gmail.com'
EMAIL_HOST_PASSWORD = 'Password'

还尝试在 shell 中单独使用 send_mail 。它返回 1。

希望有解决办法

提前致谢

标签: pythondjango

解决方案


Django 只会向拥有有效密码的活跃用户发送电子邮件。在 shell 中编写以下代码以快速检查这两个条件:

from django.core.mail import send_mail
users = [(user.email, user.is_active, user.has_usable_password()) for user in get_user_model().objects.all()]
users

其次,您需要在密码重置页面中写一封注册电子邮件。如果您编写的电子邮件未分配给任何用户,则不会发送密码重置电子邮件(请勿在该字段中写入您的个人电子邮件,除非它已分配给某些用户)。

最后,检查发件人电子邮件的“已发送”文件夹以验证电子邮件是否已发送,并检查收件人的垃圾邮件文件夹以验证是否已送达。


推荐阅读