2017-09-22 1 views
0

Ich versuche, Self-Service-Passwort-Resets auf einem Django-Setup einzurichten. Ich habe es konfiguriert, um das eingebaute Passwort-Reset-System zu verwenden, und habe alles auf meinem Dev-Rechner getestet und funktioniert gut. Jedoch in der Produktion (das heißt eigentlich das Senden von E-Mail), wenn ich versuche, eine Passwort-Reset-E-Mail zu erhalten, wirft es einen SMTPServerDisconnected Fehler:Django SMTPServerDisconnected Fehler beim Zurücksetzen des Passworts (aber funktioniert woanders)

[22/Sep/2017 15:04:59] ERROR [django.request:256] Internal Server Error: /password_reset/ 
Traceback (most recent call last): 
    File "/srv/virtualenvs/sis_esv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 132, in get_response 
    response = wrapped_callback(request, *callback_args, **callback_kwargs) 
    File "/srv/virtualenvs/sis_esv/local/lib/python2.7/site-packages/django/utils/decorators.py", line 145, in inner 
    return func(*args, **kwargs) 
    File "/srv/virtualenvs/sis_esv/local/lib/python2.7/site-packages/django/utils/decorators.py", line 110, in _wrapped_view 
    response = view_func(request, *args, **kwargs) 
    File "/srv/virtualenvs/sis_esv/local/lib/python2.7/site-packages/django/contrib/auth/views.py", line 182, in password_reset 
    form.save(**opts) 
    File "/srv/virtualenvs/sis_esv/local/lib/python2.7/site-packages/django/contrib/auth/forms.py", line 256, in save 
    html_email_template_name=html_email_template_name) 
    File "/srv/virtualenvs/sis_esv/local/lib/python2.7/site-packages/django/contrib/auth/forms.py", line 213, in send_mail 
    email_message.send() 
    File "/srv/virtualenvs/sis_esv/local/lib/python2.7/site-packages/django/core/mail/message.py", line 303, in send 
    return self.get_connection(fail_silently).send_messages([self]) 
    File "/srv/virtualenvs/sis_esv/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 107, in send_messages 
    sent = self._send(message) 
    File "/srv/virtualenvs/sis_esv/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 123, in _send 
    self.connection.sendmail(from_email, recipients, message.as_bytes(linesep='\r\n')) 
    File "/usr/lib/python2.7/smtplib.py", line 735, in sendmail 
    self.rset() 
    File "/usr/lib/python2.7/smtplib.py", line 469, in rset 
    return self.docmd("rset") 
    File "/usr/lib/python2.7/smtplib.py", line 394, in docmd 
    return self.getreply() 
    File "/usr/lib/python2.7/smtplib.py", line 368, in getreply 
    raise SMTPServerDisconnected("Connection unexpectedly closed") 
SMTPServerDisconnected: Connection unexpectedly closed 

I G-Suite (Google) als SMTP-Relay bin mit; die Einstellungen Ich verwende sind:

EMAIL_HOST = 'smtp-relay.gmail.com' 
EMAIL_PORT = 587      
EMAIL_USE_TLS = True 

Die seltsame Sache ist, ich E-Mails in Ordnung an anderen Orten innerhalb des Systems senden, Djangos django.core.mail.send_mail() Funktion.

Antwort

0

Das Problem stellte sich heraus, dass ich DEFAULT_FROM_EMAIL nicht eingestellt hatte, also versuchte django, von einer localhost E-Mail-Adresse zu senden, die von den SMTP-Servern von Google automatisch abgelehnt wurde. In anderen Verwendungen für send_mail() hatte ich die Absenderadresse angegeben, daher erschien diese nicht als Problem.

Verwandte Themen