2010-01-21 9 views
56

Ich sende E-Mails an Nutzer, die Django über Google Apps verwenden.E-Mail-Konto beim Senden von E-Mails mit Django über Google Apps einen Namen geben

Wenn der Benutzer E-Mails aus der App Django gesendet erhält, sie sind von:
[email protected]

wenn bei allen E-Mails im Posteingang suchen, sehen die Menschen des Absenders E-Mail als:
do_not_reply oder [email protected] auf die je E-Mail-Client verwendet

Wenn ich in das „do_not_reply“ Konto anmelden, um den Browser und Google Apps selbst verwenden und dann eine E-Mail an mich senden, sind die E-Mails von:
Dont Reply<[email protected]>

Als Ergebnis der Name für die E-Mail des Absenders im Posteingang angezeigt ist:
Dont Reply

In Django, ist es eine Möglichkeit, einen „Namen“ das E-Mail-Konto zu befestigen verwendet wird E-Mails zu senden?

Ich habe Djangos mail.py prüft, hatte aber kein Glück
http://code.djangoproject.com/browser/django/trunk/django/core/mail.py?rev=5548

Mit einer Lösung zu finden:
Django 1.1
Python 2.6
Ubuntu 9.1
settings.EMAIL_HOST = ‚smtp.gmail .com '

Dank

Antwort

99

Sie tatsächlich "Dont Reply <[email protected]>" als E-Mail-Adresse von Ihnen versenden können.

Versuchen Sie dies in der Shell Ihres django Projekt zu testen, ob es auch mit gapps funktioniert:

>>> from django.core.mail import send_mail 
>>> send_mail('subject', 'message', 'Dont Reply <[email protected]>', ['[email protected]']) 
+0

Danke für die Veröffentlichung! Ich wünschte, ich hätte es gestern gesehen, es hätte mir eine Zeit gerettet. Ich habe gerade die Dokumentation über gelesen und las schließlich die "from_email" genauer und fand die gleiche Antwort wie Sie. War gerade hier, um eine Antwort zu posten, als ich deine sah. Wie auch immer, danke nochmal!Freut mich endlich, das funktioniert zu haben – rfadams

+3

Sie können DEFAULT_FROM_EMAIL auch auf settings.py wie folgt setzen: 'DEFAULT_FROM_EMAIL = 'Nicht antworten <[email protected]>'' –

+0

Stellen Sie sicher, dass Sie nicht die gleiche E-Mail mit dem Namen als auth_user, weil es während der Authentifizierung fehlschlägt – iamkhush

-3

Ich benutze diesen Code zu senden über Google Mail SMTP (mit Google Apps). und Absendernamen sind OK

def send_mail_gapps(message, user, pwd, to): 
    import smtplib 
    mailServer = smtplib.SMTP("smtp.gmail.com", 587) 
    mailServer.ehlo() 
    mailServer.starttls() 
    mailServer.ehlo() 
    mailServer.login(user, pwd) 
    mailServer.sendmail(user, to, message.as_string()) 
    mailServer.close() 
+0

Dies ist eigentlich derselbe Code, den Djangos EmailMessage-Klassen im Hintergrund verwenden. Unabhängig davon habe ich Ihre Methode versucht und die E-Mail hat immer noch 'do_not_reply' als Name des Absenders. Danke für den Versuch, obwohl – rfadams

+1

und was ist mit settings.DEFAULT_EMAIL_FROM? – jujule

0

Neben der send_mail Methode E-Mail zu senden, EmailMultiAlternatives können auch E-Mail senden mit HTML-Inhalten verwendet werden, mit Textinhalt als Alternative.

versuchen Sie dies in Ihrem Projekt

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() 

Diese Mail an [email protected] mit Dont Antwort senden wird als Name statt E-Mail dispalyed wil '[email protected]'.

Verwandte Themen