Senden Sie E-Mails über SMTP Zoho
Ich versuche zum senden von E-Mail von meinem django-basierte website, aber ich habe einige problem - SMTPServerDisconnected Verbindung unerwartet geschlossen
Meine setting.py:
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.zoho.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = 'XXXXXX'
Bin ich mit django 1.5.1, python 2.7.3. Jeder kann dieses problem lösen?
Vielen Dank für Ihre Hilfe
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe das gleiche problem mit Verbindungs-timeouts. Es scheint mir, dass es Fragen rund um SSL-sockets in der Standard-Django SMTP-Bibliothek. In der Entwicklung version von Django gibt es eine option, um
EMAIL_USE_SSL = True
die es ermöglicht die Verwendung eines implizite TLS-Verbindung (im Gegensatz zu explizite, die angegeben ist durchEMAIL_USE_TLS = True
). In der Regel die frühere (implizite) verwendet den port 465, während die letzteren (explicit) verwendet den port 587. Finden Sie die Django-docs -- Vergleich der Entwicklung der version mit der version 1.5. Beachten Sie, dass die optionEMAIL_USE_SSL
ist NICHT im 1.5.Also, das problem ist, dass Zoho Standard-SMTP-server mit port 465 und SSL erfordert, aber die
EMAIL_USE_TLS
option nicht erfüllen diese Anforderung. (Randbemerkung: vielleicht versuchen Sie die Einstellung dieser option aufFalse
? Ich habe nicht versucht, die.) Trotzdem, meine beste Vermutung ist, dass dies ein Django-spezifisches Problem und kann nicht gelöst werden, bis 1.7.Als für eine Lösung zu Ihrem problem: Sie können auf jeden Fall zugreifen Zoho SMTP-server mit Python (2.7.1)'s
smtplib
(siehe Skript unten). Also, wenn Sie wollen, einen etwas unelegant lösen, Sie könnten diesen Weg gehen. Ich getestet habe dies in Django 1.5.1 und es funktioniert wie ein Charme.Hier ist die stand-alone-Python-Skript (kann angepasst werden für die Verwendung in einem Django-Projekt):
Überprüfen Sie, dass das obige Skript läuft mit Ihrer Zoho-Anmeldeinformationen, bevor Sie es in Ihr web-Projekt. Viel Glück!
msg['To'] = '[email protected];[email protected]'
undserver.sendmail(sender, ['[email protected]', '[email protected]'], msg.as_string())
In meinem Fall wurde ich empfangen:
mit diesen Einstellungen:
Nachdem Sie die Einstellung server.set_debuglevel(1), entdeckte ich, dass mein DEFAULT_FROM_EMAIL wurde, unterscheidet sich von EMAIL_HOST_USER
Hinzufügen, dass das problem behoben.
B. Welsh ' s Antwort nicht das problem lösen, wenn Sie möchten, erhalten Sie Fehlermeldungen per E-Mail.
Also für jeden, der Sie braucht:
Den port für Zoho TLS 587-wie definiert in Ihrer SMTP-Server-Konfiguration Seite .
Die Seite weist auch darauf hin, dass Sie nicht verwenden können, ein "von" anders als die E-Mail Sie verwenden, da es sonst nicht durch.
Gibt es den code, den Sie brauchen, in
settings.py
um den Fehler-report von Mail-arbeiten:Habe ich einen Weg zu schicken mit django 1.6.8. Zuerst müssen Sie installieren Sie die django-smtp-ssl-verfügbar im GitHub. Führen Sie den code:
und fügen Sie Folgendes zu Ihrer settings.py:
Sehen den link https://github.com/bancek/django-smtp-ssl
Versuchen 1 statt True:
alternativ versuchen Sie einen alternativen port:
Ihre SMTP-E-Mail-backend-Klasse könnte alt sein. Goto
Datei und stellen Sie sicher, Sie haben USE_SSL als option. Wenn nicht, ersetzen Sie einfach die gesamte Datei mit einer, die es tut. Hier gehen Sie. Arbeitete für mich mit ZOHO.
stmp.py Datei
Entschuldigt die schlechte Formatierung dieser Antwort, es ist mein Erster Beitrag zu SO...
SMTP-Konfiguration Einstellungen für Zoho Mail - TLS-port 587 und ssl 465. so
verwenden
EMAIL_PORT = 587
wenn Sie EMAIL_USE_TLS = TrueFand ich, dass Zoho nicht wie ein standard-django.core.E-mail.send_mail Ansatz. Das Problem scheint mit dem Content-type. Es gibt mehrere Möglichkeiten, wie Sie zusammenarbeiten können, um dieses, mein Ansatz war, zu wechseln EmailMessage die eine umfangreichere Schnittstelle und können Sie übergeben den Content-type im header.
Wechsel von diesem:
zu diesem:
Anderen Zoho mail-Einstellungen:
Diese gelöst meine Probleme mit Zoho mail senden und ist kompatibel mit anderen queuing-plugins wie django-yubin.
Ein bisschen unabhängig von der Frage, aber bitte beachten Sie, dass Zoho Mail nicht bieten IMAP/POP-Unterstützung mehr mit Ihrer freien plan. Hoffentlich kann ich sparen Sie debugging-Zeit mit diesem post.
+IMAP/POP-Unterstützung, die ausschließlich mit der kostenpflichtigen Pläne.
https://www.zoho.com/workplace/pricing.html?src=zmail
Alte freie Pläne (Anmeldung bis 2018???) scheinen noch IMAP/POP-Unterstützung zur Verfügung
Quelle: https://help.zoho.com/portal/community/topic/zoho-free-tier-pop-imap-activesync-no-longer-free