2012-08-11 5 views
2

J'ai créé les entrées suivantes dans mon fichier 'settings.py'Django: Mise en place email

# Email setup 
EMAIL_USE_TLS = True 
EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'thepassword' 
EMAIL_PORT = 587 

J'émis la commande suivante dans le terminal:

email = EmailMessage('Hello','Have you received this mail?',to=['[email protected]']) 

Je suis 1 comme ouput.

Lorsque j'ai vérifié la boîte aux lettres à 'quelqu'un @ gmail.com', aucun courrier n'était dans la boîte aux lettres. Quelque chose me manquait?

+0

Quel fournisseur d'hébergement utilisez-vous? il faut aussi une certaine configuration à cet égard. – AndyL

+0

Je suis juste sur la machine locale, n'utilisant aucun hôte pour le moment. –

Répondre

2

Vous devez configurer le paramètre from_email (en tant que kwarg ou 3ème argument) avec l'appel EmailMessage. Ou définir dans settings.py:

DEFAULT_FROM_EMAIL = '[email protected]' 

Cela est pris par défaut si aucune from_email est fournie à EmailMessage.

Sur une note semi-connexe, il est probablement une bonne idée de définir également SERVER_EMAIL dans settings.py. Celui-ci est utilisé avec mail_admins et mail_managers par Django.

1

Tous vos paramètres sont corrects et complets, vous avez juste manqué une chose à la fin. Vous avez créé un objet de messagerie et maintenant email est prêt à être envoyé objet d'email, mais vous devez réellement l'envoyer avec email.send(). Pour plus d'informations et d'exemples, consultez Django documentation. En outre, vous pouvez utiliser send_mail qui crée automatiquement l'objet e-mail et l'envoie.

from django.core.mail import send_mail 

mail_title = 'Hello!' 
message = 'Have you received this mail?' 
email = '[email protected]' 
recipients = '[email protected]' 

send_mail(mail_title, message, email, [recipients]) 
+0

J'ai envoyé le mail alors que j'ai obtenu '1' comme sortie –

+0

Avez-vous essayé de vous connecter à '' quelqu'un @ someorg.com '' que vous avez défini dans 'EMAIL_HOST_USER' et de vérifier le courrier envoyé? Pouvez-vous le voir là-bas? Ou peut-être un message d'erreur ce destinataire n'est pas disponible? – Scillon