Geben Sie dem E-Mail-Konto einen Namen, wenn Sie E-Mails mit Django über Google Apps senden

84

Ich sende E-Mails an Benutzer, die Django über Google Apps verwenden.

Wenn der Benutzer E-Mails erhält, die von der Django-App gesendet wurden, stammen diese von:
[email protected]

Wenn Sie alle E-Mails im Posteingang anzeigen, sehen die Benutzer den Absender der E-Mail als:
do_not_replyoder [email protected]abhängig vom verwendeten E-Mail-Client

Wenn ich mich mit dem Browser und Google Apps selbst bei diesem Konto "do_not_reply" anmelde und dann eine E-Mail an mich selbst sende, stammen die E-Mails von:
Dont Reply<[email protected]>

Der im Posteingang angezeigte Name für den Absender der E-Mail lautet daher:
Dont Reply

Gibt es in Django eine Möglichkeit, dem E-Mail-Konto, mit dem E-Mails gesendet werden, einen "Namen" zuzuweisen?

Ich habe Djangos mail.py überprüft, hatte aber kein Glück, eine Lösung zu finden
http://code.djangoproject.com/browser/django/trunk/django/core/mail.py?rev=5548

Verwenden von:
Django 1.1
Python 2.6
Ubuntu 9.1
settings.EMAIL_HOST = 'smtp.gmail.com'

Vielen Dank

rfadams
quelle

Antworten:

144

Sie können tatsächlich "Dont Reply <[email protected]>"die E-Mail-Adresse verwenden, von der Sie senden.

Versuchen Sie dies in der Shell Ihres Django-Projekts, um 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]'])
Gregor Müllegger
quelle
1
Danke fürs Schreiben! Ich wünschte, ich hätte das gestern b / c gesehen, es hätte mir einige Zeit gespart. Ich habe gerade die Dokumentation unter < docs.djangoproject.com/de/dev/topics/email/… > gelesen und schließlich die "from_email" genauer gelesen und die gleiche Antwort wie Sie gefunden. Ich bin gerade hierher gekommen, um eine Antwort zu schreiben, als ich deine sah. Trotzdem nochmals vielen Dank!
Ich bin
10
Sie können DEFAULT_FROM_EMAIL auch auf settings.py wie folgt einstellen: DEFAULT_FROM_EMAIL = 'Dont Reply <[email protected]>'
Marc Tudurí
Stellen Sie nur sicher, dass Sie nicht dieselbe E-Mail mit dem Namen auth_user festlegen, da dies bei der Authentifizierung fehlschlägt
iamkhush
@iamkhush - Was meinen Sie setting the same email with name as aut_user. Ich erhalte einen Authentifizierungsfehler. Ich konnte nicht verstehen warum?
PythonEnthusiast
0

Neben der send_mail-Methode zum Senden von E-Mails können mit EmailMultiAlternatives auch E-Mails mit HTML-Inhalten und alternativ Textinhalten gesendet werden.

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

Dadurch wird eine E-Mail an [email protected] gesendet, wobei "Nicht antworten" als Name anstelle der E-Mail "[email protected]" angezeigt wird.

Basant Kumar
quelle
-5

Ich verwende diesen Code zum Senden über Google Mail-SMTP (mithilfe von 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()
Jujule
quelle
Dies ist tatsächlich derselbe Code, den die EmailMessage-Klassen von Django im Hintergrund verwenden. Unabhängig davon habe ich Ihre Methode ausprobiert und die E-Mail hat immer noch den do_not_replyNamen des Absenders. Vielen Dank für den Versuch
Rfadams
3
und was ist mit settings.DEFAULT_EMAIL_FROM?
Jujule