2010-05-24 13 views
8

Ich bin gespannt, ob es eine Möglichkeit gibt, eine aktivierte E-Mail mit Benutzername, Passwort und Django-Registrierung zu senden. Zuerst habe ich über das Ändern des Anmeldeformulars nachgedacht, aber ich brauche ein Beispiel.sende activate-email mit django-registration

+0

NICHT Benutzer Passwörter in E-Mail senden. –

Antwort

11

django-registration verwendet den folgenden Code, intern, E-Mails zu handhaben:

send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [self.user.email]) 

Wenn Sie arbeiten möchten, werden Sie den Wert DEFAULT_FROM_EMAIL in Ihrem settings.py angeben.

Auch ist folgendes zu beachten:

E-Mail wird mit dem SMTP-Host und Port im EMAIL_HOST und EMAIL_PORT Einstellungen angegeben haben. Die EMAIL_HOST_USER und EMAIL_HOST_PASSWORD Einstellungen, wenn gesetzt, werden verwendet, um den SMTP- -Server zu authentifizieren und die EMAIL_USE_TLS Einstellung steuert, ob eine sichere Verbindung verwendet wird.

Also, ein Beispiel zu geben, hier ist was ich in einer settings.py Datei verwendet hat ein Google Mail-Konto zu verwenden:

EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_PORT = 465 
EMAIL_USE_TLS = True 

EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'my_emails_password' 

django-registration sollte dann in der Lage sein, E-Mails zu senden.

+6

Und, nur für die Aufzeichnung, zu jemand anderem Einrichten von E-Mail - ** nicht ** den Fehler, den ich getan habe, von Anführungszeichen um den Port, wie in 'EMAIL_PORT =' 587''. Das kostete mich ein paar Stunden Debugging ... –

+0

Dank deines Tippes habe ich meine fehlerhafte E-Mail-Konfiguration überprüft - nur um zu entdecken, dass 4 Zeilen nach der Einrichtung mit einem Google Mail-Konto, ich für einige Unsinn Localhost-Konto eingerichtet hatte ! Problem? Gelöst. – bharal

+2

Ich denke, wir müssen 'EMAIL_PORT = 587' verwenden, wenn' EMAIL_USE_TLS = True' –

3

EMAIL_PORT = 465 funktionierte vor einem Jahr. Jetzt müssen Sie Port 587 mit Google Mail verwenden. Grund: Django unterstützt SMTP von Anfang an nicht mit SSL. Nur der Befehl STARTTLS wird unterstützt, nachdem die Klartextverbindung eingerichtet wurde. Google Mail unterstützt diese Option jedoch nicht mehr an Anschluss 465.

1

Ich hoffe, dies wird jemandem helfen. Nach Fehlerbehebung für eine halbe Stunde, wurde mir klar, dass ich auch dies ausdrücklich django-Anmeldung musste feststellen, während mit -

EMAIL_BACKEND = ‚django.core.mail.backends.smtp.EmailBackend‘

0

django-register-activate a umgesetzt ähnliche Funktionalität wie Django-Registrierung. Im Grunde bietet es Code für Benutzeranmeldung, E-Mail-Überprüfung und Aktivierung, Benutzeranmeldung und Benutzerabmeldung.

Wenn Sie Beispiele zum Implementieren Ihres eigenen Codes benötigen, können Sie in der Datei views.py und forms.py in register_activate nach Hinweisen suchen.

Ich hoffe, die Antwort hilft. Lassen Sie mich wissen, wenn Sie weitere Fragen haben.