首页 > 解决方案 > Django PasswordResetView - Gmail 电子邮件未发送

问题描述

我使用带有提交按钮的模板设置 PasswordResetView,我还设置了使用 Gmail 帐户发送的必要配置,但是当我尝试将密码重置发送到电子邮件时,控制台返回 302 响应并且没有收到电子邮件. 我已经允许在我的 gmail 帐户中使用不太安全的应用程序,但它仍然不发送任何电子邮件。以下是我的设置的详细信息。

网址:

path('password-reset/', auth_views.PasswordResetView.as_view(template_name='users/password_reset.html'), name='password_reset'),

设置.py:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'my@gmail.com'
EMAIL_HOST_PASSWORD = 'mypass'

重置密码模板:

{% extends "blog/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
    <div class="content-section">
        <form method="POST">
            {% csrf_token %}
            <fieldset class="form-group">
                <legend class="border-bottom mb-4 pb-2">Reset Password</legend>
                {{ form|crispy }}
            </fieldset>
            <div class="form-group">
                <button class="btn btn-outline-info" type="submit">Request Password Reset</button>
            </div>
        </form>
    </div>
{% endblock content %}

服务器响应:

在此处输入图像描述

标签: pythondjango

解决方案


似乎 Django 在网页上运行良好,在发送过程中可能会出现一些错误。

我认为这可能是您的电子邮件设置,请尝试设置

SERVER_EMAIL='my@gmail.com'

django 默认会从 localhost 发送电子邮件,Gmail 不接受

可能重复:Django send_mail 不工作


推荐阅读