ich das gleiche Problem mit Verbindungs-Timeouts aufweist. Es scheint mir, dass es Probleme mit SSL-Sockets in der Standard-Django-SMTP-Bibliothek gibt. In der Entwicklungsversion von Django gibt es eine Option EMAIL_USE_SSL = True
zu setzen, die die Verwendung einer impliziten TLS-Verbindung ermöglicht (im Gegensatz zu explizite, die von EMAIL_USE_TLS = True
angegeben wird). Im Allgemeinen verwendet der erste (implizite) Port 465, während der zweite (explizit) Port 587 verwendet. Siehe Django docs - vergleichen Sie die Entwicklungsversion mit Version 1.5. Beachten Sie, dass die Option EMAIL_USE_SSL
NICHT in 1.5 vorhanden ist.
So ist das Problem, dass Zoho's default SMTP server uses port 465 and requires SSL, aber die EMAIL_USE_TLS
Option diese Anforderung nicht erfüllt. (Randbemerkung: Versuchen Sie vielleicht, diese Option auf False
zu setzen? Ich habe das nicht versucht.) Wie auch immer, meine beste Vermutung ist, dass es sich um ein Django-spezifisches Problem handelt, das möglicherweise erst am 1.7. Behoben wird.
Wie für eine Lösung für Ihr Problem: Sie können definitiv auf Zoho SMTP-Server mit Python (2.7.1) smtplib
zugreifen (siehe Skript unten). Also, wenn Sie eine leicht unelegante Reparatur wünschen, könnten Sie diesen Weg gehen. Ich habe das in Django 1.5.1 getestet und es funktioniert wie ein Zauber.
Hier ist der Stand-alone-Python-Skript (die für die Verwendung in einem Django-Projekt angepasst werden können):
import smtplib
from email.mime.text import MIMEText
# Define to/from
sender = '[email protected]'
recipient = '[email protected]'
# Create message
msg = MIMEText("Message text")
msg['Subject'] = "Sent from python"
msg['From'] = sender
msg['To'] = recipient
# Create server object with SSL option
server = smtplib.SMTP_SSL('smtp.zoho.com', 465)
# Perform operations via server
server.login('[email protected]', 'password')
server.sendmail(sender, [recipient], msg.as_string())
server.quit()
Versuchen Sie prüfen, ob das obige Skript läuft mit Zoho Anmeldeinformationen, bevor sie in Ihr Webprojekt anschließen. Viel Glück!
Diese Methode funktioniert für mich :) Wie sende ich HTML-Inhalt in Nachricht – ZenOut
Funktioniert wie ein Charme. Zusatz: Wenn Sie E-Mails an mehr als eine Person senden möchten, ändern Sie zwei Zeilen: 'msg ['To'] = '[email protected]; u2 @ ex.com'' und' server.sendmail (sender, [' [email protected] ',' [email protected] '], msg.as_string()) ' –
@ZenOut müssen Sie Multipart E-Mail verwenden .. see https://docs.python.org/2/library/ email-examples.html # id5 – Coderaemon