web-dev-qa-db-fra.com

Attribuer un nom au compte de messagerie lors de l'envoi d'e-mails avec Django via Google Apps

J'envoie des courriers électroniques aux utilisateurs de Django via Google Apps.

Lorsque l'utilisateur reçoit des e-mails envoyés depuis l'application Django, ils proviennent de:
[email protected]

lorsqu'ils consultent tous les courriels de la boîte de réception, les utilisateurs voient leur expéditeur sous la forme:
do_not_reply ou [email protected] en fonction du client de messagerie utilisé

Si je me connecte à ce compte "do_not_reply" à l'aide du navigateur et de Google Apps, puis m'envoie un e-mail, les e-mails proviennent de:
Dont Reply<[email protected]>

Par conséquent, le nom affiché pour l'expéditeur du courrier électronique dans la boîte de réception est le suivant:
Dont Reply

Dans Django, existe-t-il un moyen d'attacher un "nom" au compte de messagerie utilisé pour envoyer des emails?

J'ai examiné le fichier mail.py de Django, mais je n'ai pas eu la chance de trouver une solution.
http://code.djangoproject.com/browser/Django/trunk/Django/core/mail.py?rev=5548

En utilisant:
Django 1.1
Python 2.6
Ubuntu 9.1
settings.EMAIL_Host = 'smtp.gmail.com'

Merci

63
rfadams

Vous pouvez réellement utiliser "Dont Reply <[email protected]>" comme adresse électronique à partir de laquelle vous envoyez.

Essayez ceci dans le shell de votre projet Django pour vérifier s’il fonctionne également avec gapps:

>>> from Django.core.mail import send_mail
>>> send_mail('subject', 'message', 'Dont Reply <[email protected]>', ['[email protected]'])
108
Gregor Müllegger

Outre la méthode send_mail pour l'envoi d'e-mails, EmailMultiAlternatives peut également être utilisé pour envoyer des e-mails avec un contenu HTML avec un contenu texte.

essayez ceci dans votre projet

from Django.core.mail import EmailMultiAlternatives
text_content = "Hello World"
# set html_content  
email = EmailMultiAlternatives('subject', text_content, 'Dont Reply <[email protected]>', ['[email protected]'])

email.attach_alternative(html_content, 'text/html')
email.send()

Cela enverra un courrier électronique à [email protected] avec Dont Reply qui sera affiché comme nom à la place du courrier électronique '[email protected]'.

0
Basant Kumar