Nadanie kontu e-mail nazwy podczas wysyłania e-maili z Django przez Google Apps

84

Wysyłam e-maile do użytkowników używających Django przez Google Apps.

Gdy użytkownik otrzymuje e-maile wysłane z aplikacji Django, pochodzą one z:
[email protected]

patrząc na wszystkie e-maile w skrzynce odbiorczej, ludzie widzą nadawcę e-maila jako:
do_not_replylub w [email protected]zależności od używanego klienta poczty e-mail

Jeśli zaloguję się na to konto „do_not_reply” za pomocą przeglądarki i samej usługi Google Apps, a następnie wyślę do siebie wiadomość e-mail, będą one pochodzić z:
Dont Reply<[email protected]>

W rezultacie nazwa wyświetlana nadawcy wiadomości e-mail w skrzynce odbiorczej to:
Dont Reply

Czy w Django istnieje sposób na dołączenie „nazwy” do konta e-mail używanego do wysyłania e-maili?

Sprawdziłem mail.py Django, ale nie udało mi się znaleźć rozwiązania
http://code.djangoproject.com/browser/django/trunk/django/core/mail.py?rev=5548

Używanie:
Django 1.1
Python 2.6
Ubuntu 9.1
settings.EMAIL_HOST = 'smtp.gmail.com'

Dzięki

rfadams
źródło

Odpowiedzi:

145

Możesz faktycznie użyć "Dont Reply <[email protected]>"jako adresu e-mail, z którego wysyłasz.

Spróbuj tego w powłoce swojego projektu django, aby sprawdzić, czy działa również z gapps:

>>> from django.core.mail import send_mail
>>> send_mail('subject', 'message', 'Dont Reply <[email protected]>', ['[email protected]'])
Gregor Müllegger
źródło
1
Dzięki za wiadomość! Szkoda, że ​​nie widziałem tego wczoraj, b / c zaoszczędziłoby mi to trochę czasu. Właśnie przeczytałem dokumentację pod adresem < docs.djangoproject.com/en/dev/topics/email/… > i w końcu przeczytałem dokładniej „from_email” i znalazłem tę samą odpowiedź co Ty. Właśnie przychodziłem tutaj, żeby opublikować odpowiedź, kiedy zobaczyłem twoją. W każdym razie jeszcze raz dziękuję! Cieszę się, że w końcu to działa
rfadams
10
Możesz również ustawić DEFAULT_FROM_EMAIL na settings.py w ten sposób: DEFAULT_FROM_EMAIL = 'Dont Reply <[email protected]>'
Marc Tudurí Kwietnia
Tylko upewnij się, że nie ustawiłeś tego samego adresu e-mail z nazwą jako auth_user, ponieważ nie powiedzie się podczas uwierzytelniania
iamkhush
@iamkhush - co masz na myśli setting the same email with name as aut_user. Otrzymuję błąd uwierzytelniania. Nie mogłem zrozumieć, dlaczego?
PythonEnthusiast
0

Oprócz metody send_mail do wysyłania wiadomości e-mail, EmailMultiAlternatives może również służyć do wysyłania wiadomości e-mail z zawartością HTML z treścią tekstową jako alternatywą.

spróbuj tego w swoim projekcie

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

Spowoduje to wysłanie wiadomości na adres [email protected] z informacją „Nie odpowiadaj”, która zostanie wyświetlona jako nazwa zamiast e-maila „[email protected]”.

Basant Kumar
źródło
-5

Używam tego kodu do wysyłania przez Gmaila smtp (używając Google Apps). i nazwy nadawców są w porządku

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
źródło
Jest to właściwie ten sam kod, którego klasy EmailMessage używają w tle. Niezależnie od tego, wypróbowałem twoją metodę i e-mail nadal ma do_not_replynazwę nadawcy. Dzięki za próbę
rfadams
3
a co z settings.DEFAULT_EMAIL_FROM?
jujule