web-dev-qa-db-fra.com

Python Django Configuration SMTP Gmail

J'essaie d'envoyer des e-mails à partir de Django en configurant gmail smtp. Mais à chaque fois qu'il me renvoie le statut 0. J'ai cherché différentes réponses pertinentes dans stackoverflow et je configure le serveur smtp de la même manière mais n'envoie toujours aucun e-mail. Ci-dessous mon fichier de configuration

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'

Ci-dessous mon 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"

Mais à chaque fois, il affiche le statut 0, ce qui signifie qu'aucun e-mail n'est envoyé. À propos de l'environnement, j'exécute ce code sur l'instance Amazon EC2 qui a Ubuntu comme système d'exploitation et Apache comme serveur.

Dois-je faire des configurations supplémentaires pour envoyer des e-mails via gmail smtp ?? J'apprécie beaucoup votre aide Merci d'avance

20
planet260

Votre gmail.smtp la configuration est correcte. Il semble que vous n'appeliez pas le send_email fonctionne correctement, et c'est pourquoi il n'envoie pas. Dans le shell python, essayez ce qui suit:

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)
24
Aaron Lelevier

Essayez de changer EMAIL_USE_TLS = True en EMAIL_USE_SSL = True et EMAIL_PORT = 465

https://docs.djangoproject.com/en/1.10/topics/email/

2