2013-10-09 9 views
19

Ich versuche, E-Mail von Django zu senden, indem ich gmail SMTP einrichten. Aber jedes Mal, wenn es mir 0 Status zurückgibt. Ich habe verschiedene relevante Antworten in Stackoverflow gesucht und ich bin Einstellung des SMTP-Server auf die gleiche Weise, aber noch ist es nicht jede E-Mail zu senden .. Below Datei meiner Einstellung istPython Django Gmail SMTP-Konfiguration

EMAIL_USE_TLS = True 
EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_PORT = 587 
EMAIL_HOST_USER = 'my gmail account' 
EMAIL_HOST_PASSWORD = 'my gmail account password' 
DEFAULT_FROM_EMAIL = 'my gmail account' 
DEFAULT_TO_EMAIL = 'to email' 

Unten ist mein Code

from django.conf import settings 
from django.core.mail import send_mail 
print "Sending Email" 
mail_title = 'Test Email' 
message = 'This is a test email.' 
email = settings.DEFAULT_FROM_EMAIL 
recipients = [settings.DEFAULT_TO_EMAIL] 
print send_mail(mail_title, message, email, recipients, settings.EMAIL_HOST_USER, settings.EMAIL_HOST_PASSWORD) 
print "Email Sent" 

Aber jedes Mal druckt es den Status 0, was bedeutet, dass keine E-Mail gesendet wird. Über die Umgebung Ich führe diesen Code auf Amazon EC2-Instanz, die Ubuntu als Betriebssystem und Apache als Server hat ..

Muss ich zusätzliche Setups für das Senden von E-Mails über Google Mail SMTP? Vielen Dank für Ihre Hilfe Vielen Dank im Voraus

+0

tut dieser Code auf der eigenen Workstation zu ändern oder irgendwo anders als Dein EC2? Dies wird es ermöglichen, den Ursprung des Problems zu isolieren –

Antwort

24

Ihr gmail.smtp Setup ist korrekt. Es sieht so aus, als ob Sie die send_email Funktion nicht korrekt aufrufen, und deshalb sendet sie nicht. In der Python-Shell, versuchen Sie folgendes:

import django 
from django.conf import settings 
from django.core.mail import send_mail 

send_mail('Subject here', 'Here is the message.', settings.EMAIL_HOST_USER, 
    ['[email protected]'], fail_silently=False)