Wie sende ich E-Mails über Django?
In meinem settings.py
habe ich folgende:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
# Host for sending e-mail.
EMAIL_HOST = 'localhost'
# Port for sending e-mail.
EMAIL_PORT = 1025
# Optional SMTP authentication information for EMAIL_HOST.
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''
EMAIL_USE_TLS = False
Meine E-Mail-code:
from django.core.mail import EmailMessage
email = EmailMessage('Hello', 'World', to=['[email protected]'])
email.send()
Natürlich, wenn ich setup eine debugging-server über python -m smtpd -n -c DebuggingServer localhost:1025
können, sehe ich die E-Mail in meinem terminal.
Jedoch, wie kann ich eigentlich die E-Mail senden nicht zum Debuggen von server -, sondern [email protected]?
Nach der Lektüre Ihrer Antworten, lassen Sie mich Sie etwas gerade:
-
Kannst du nicht localhost verwenden(einfache ubuntu-pc) e-mails zu versenden?
-
Dachte ich in django 1.3
send_mail()
ist etwas veraltet undEmailMessage.send()
wird stattdessen verwendet?
InformationsquelleAutor der Frage Derek | 2011-06-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Senden Sie die E-Mail zu einem echten SMTP-server. Wenn Sie nicht wollen, um Ihre eigenen, dann finden Sie Unternehmen, die ausgeführt wird, für Sie, wie Google selbst.
InformationsquelleAutor der Antwort Ignacio Vazquez-Abrams
Ich benutze Gmail als mein SMTP-server für Django. Viel einfacher als der Umgang mit postfix oder was auch immer andere server. Ich bin nicht in das Geschäft der Verwaltung von E-Mail-Server.
In settings.py:
HINWEIS: Im Jahr 2016 Gmail ist nicht so dass dieser nicht mehr standardmäßig. Sie können entweder verwenden Sie einen externen Dienst wie Sendgrid, oder Sie können Folgen Sie diesem tutorial von Google zu verringern-Sicherheit, aber diese option erlauben: https://support.google.com/accounts/answer/6010255
InformationsquelleAutor der Antwort Jordan
django-admin.py startproject gmail
Bearbeiten settings.py mit dem folgenden code:
Interactive-Modus:
python manage.py shell
Importieren Sie die EmailMessage Modul:
Senden Sie die E-Mail:
Für weitere Informationen, überprüfen Sie
send_mail
undEmailMessage
Funktionen in Dokumente.UPDATE für Gmail
Auch wenn Sie Probleme haben senden von E-Mails über die gmail-denken Sie daran zu prüfen diese guides von google.
In Ihrem Google-Konto-Einstellungen, gehen Sie zu
Security > Account permissions > Access for less secure apps
auf und aktivieren Sie diese option.Auch erstellen Sie eine App-spezifische Passwort für Ihr gmail nachdem Sie eingeschaltet 2-Schritt-überprüfung.
Dann sollten Sie app-spezifischen Passwort in den Einstellungen. So ändern Sie die folgende Zeile:
InformationsquelleAutor der Antwort Alex Jolig
Für Django in der version 1.7, wenn die oben genannten Lösungen nicht funktionieren, dann versuchen Sie die folgenden
in settings.py hinzufügen
Die Letzte Zeile hat den trick für django 1.7
InformationsquelleAutor der Antwort Cognoscis
Meine Website ist gehostet bei Godaddy und ich haben ein eigenes E-Mail registriert.
Dies sind die Einstellungen, die für mich gearbeitet:
In settings.py:
In der Schale:
Dann bekam ich "1" als O/P d.h. der Erfolg. Und ich erhielt die E-mail zu. 🙂
InformationsquelleAutor der Antwort ibaggu
Müssen Sie smtp als backend in settings.py
Wenn Sie backend-Konsole, erhalten Sie die Ausgabe in der Konsole
Und auch unter Einstellungen zusätzlich
Wenn Sie gmail für dieses setup 2-Schritt-überprüfung und anwendungsspezifische Passwort und kopieren Sie und fügen Sie das Kennwort in den oben EMAIL_HOST_PASSWORD Wert.
InformationsquelleAutor der Antwort
Hatte ich eigentlich getan, dies von Django eine Weile zurück. Öffnen Sie einen legitimen GMail-Konto & geben Sie die Anmeldeinformationen hier. Hier ist mein code -
InformationsquelleAutor der Antwort Srikar Appalaraju
Spät, aber:
Zusätzlich zu den
DEFAULT_FROM_EMAIL
fix andere erwähnt haben, und so dass weniger sicheren apps Zugriff auf den account hatte ich zum navigieren zu https://accounts.google.com/DisplayUnlockCaptchawährend Sie angemeldet mit dem Konto in Frage, um Django endlich zu authentifizieren.Ging ich zu dieser URL durch einen SSH-tunnel auf den web-server, um sicherzustellen, dass die IP-Adresse war die gleiche; ich bin mir nicht ganz sicher, ob das notwendig, aber es kann nicht Schaden. Sie können tun, etwa so:
ssh -D 8080 -fN <username>@<host>
dann setzen Sie Ihren web-browser zu verwendenlocalhost:8080
als SOCKS-proxy.InformationsquelleAutor der Antwort James Johnson
Fand ich mithilfe von SendGrid der einfachste Weg zum einrichten der email-Versand mit Django. Hier ist, wie es funktioniert:
settings.py
:EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = '<your sendgrid username>'
EMAIL_HOST_PASSWORD = '<your sendgrid password>'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
Und Sie sind alle gesetzt!
Senden E-Mail:
Wenn Sie wollen Django per E-Mail, sobald es einen 500 internal server error, fügen Sie Folgendes zu Ihrer
settings.py
:Senden von E-Mails mit SendGrid ist kostenlos bis zu 12 E-Mails pro Monat.
InformationsquelleAutor der Antwort yndolok
Könnten Sie "Test Mail Server Tool" zu test-E-Mail senden, auf Ihrer Maschine oder localhost. Google und Download "Test Mail Server Tool" und es einzurichten.
Dann in Ihre settings.py:
Shell:
InformationsquelleAutor der Antwort Allan Guwatudde
Für SendGrid - Django Speziell:
SendGrid Django-Docs hier
Diese Variablen in
settings.py
in views.py
InformationsquelleAutor der Antwort Deepak Sharma