2017-08-12 2 views
0

Ich habe die Reset-Passwort-Funktionalität mit Django implementiert. Hier sende ich den Reset-Passwort-Link an die registrierte E-Mail-Adresse und es kommt keine Mail in den Posteingang. Ich erkläre meinen Code unten.E-Mail konnte nicht gesendet werden mit Django und Python

settings.py:

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

EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_PORT = 587 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = '*********' 
EMAIL_USE_TLS = False 
DEFAULT_FROM_EMAIL = '[email protected]' 

Registrierung/password_reset_form.html:

{% extends 'base.html' %} 

{% block content %} 
    <h3>Forgot password</h3> 
    <form method="post"> 
    {% csrf_token %} 
    {{ form.as_p }} 
    <button type="submit">Submit</button> 
    </form> 
{% endblock %} 

Registrierung/password_reset_email.html:

{% autoescape off %} 
    To initiate the password reset process for your {{ user.get_username }} TestSite Account, 
    click the link below: 

    {{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %} 

If clicking the link above doesn't work, please copy and paste the URL in a new browser 
window instead. 

Sincerely, 
The Nuclear Team 
{% endautoescape %} 

Mein Passwort-Reset-Form sieht aus wie unten.

enter image description here

Hier konnte ich nicht die E-Mail an die angegebene E-Mail-ID senden.

+1

Können Sie uns Ihre Ansicht für das Zurücksetzen des Passworts zeigen? – wencakisa

+2

Lesen Sie einfach die Dokumentation. Ihre erste Codezeile ist falsch. https://docs.djangoproject.com/en/1.11/topics/email/#console-backend – allcaps

+0

Es sendet keine E-Mail, weil die E-Mail an die Konsole gedruckt wird. Wie du es konfiguriert hast. – allcaps

Antwort

2

Yiu müssen ersetzt werden:

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' 
#          ^^^^^^^^ 

zu

BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 
#         ^^^^^^ 

Weitere Informationen hier: email-backend

+0

Ich habe es aber immer noch diese 'SMTP AUTH-Erweiterung nicht vom Server unterstützt. 'Fehler kommt. – satya

+0

geben Sie die richtige E-Mail-Adresse ein? Ist deine Weiterleitung beim Reset durchgeführt worden? –

+0

Es hat funktioniert, ich habe gerade 'EMAIL_USE_TLS = True' geändert. Danke – satya

0

Sie sollten wie auf Ihre Ansichten etwas haben:

from django.core.mail import EmailMessage 

email = EmailMessage('title', 'body', to=[email]) 
email.send() 

Darüber hinaus müssen Sie captcha auf Ihrem Google Mail-Konto entsperren: https://accounts.google.com/DisplayUnlockCaptcha

Verwandte Themen