Не отправляется сообщение электронной почты для сброса пароля Django
Я использую стандартный django для сброса пароля пользователя. Странно то, что я могу отправлять email в своем коде, я их получаю. Но только для сброса пароля из django я никогда не получаю email ...
Моя версия django==3.1.2
Настройки Django:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_USE_TLS = True
EMAIL_PORT = 587
EMAIL_HOST_USER ='****@gmail.com'
EMAIL_HOST_PASSWORD = '*****'
Мой django URL :
path('password_reset/', auth_views.PasswordResetView.as_view(), name='password_reset'),
path('password_reset/done/', auth_views.PasswordResetDoneView.as_view(), name='password_reset_done'),
path('reset/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view(), name='password_reset_confirm'),
path('reset/done/', auth_views.PasswordResetCompleteView.as_view(), name='password_reset_complete'),
HTML :
<form class="form">
{% csrf_token %}
{{ form.as_p }}
<div class="form-group">
<button type="submit" class="btn btn-pill btn-outline-white font-weight-bold opacity-90 px-15 py-3 m-2">Reset</button>
</div>
</form>
Когда я нажимаю на кнопку сброса, URL страницы меняется на : http://localhost:8000/password_reset/?csrfmiddlewaretoken=MY_TOKEN&email=*******%40hotmail.com
Я могу отправить письмо, используя оболочку django shell, это работает. Я также попытался проверить, имеет ли пользователь is_active True и имеет ли он полезный пароль:
[(u.email, u.is_active, u.has_usable_password()) for u in get_user_model().objects.all()]
Я получил :
[('******', True, True), ('****', True, True), ('****', True, True), ('*****', True, True)]
Вам нужно сделать POST запрос, поэтому:
<form class="form" method="post"> … </form>