Giving email account a name when sending emails with Django through Google Apps

Viewed 29799

I am sending emails to users using Django through Google Apps.

When the user receives emails sent from the Django app, they are from: do_not_reply@domain.example

when looking at all emails in the inbox, people see the email's sender as: do_not_reply or do_not_reply@domain.example depending on the email client used

If I log into that "do_not_reply" account using the browser and Google Apps itself and then send an email to myself, the emails are from: Don't Reply <do_not_reply@domain.example>

As a result, the name displayed for the email's sender in the inbox is: Don't Reply

In Django, is there a way to attach a "name" to the email account being used to send emails?

I have reviewed Django's mail.py, but had no luck finding a solution http://code.djangoproject.com/browser/django/trunk/django/core/mail.py?rev=5548

Using:

  • Django 1.1
  • Python 2.6
  • Ubuntu 9.1
  • settings.EMAIL_HOST = smtp.gmail.com
3 Answers

You can actually use "Don't Reply <do_not_reply@domain.example>" as the email address you send from.

Try this in the shell of your Django project to test if it also works with gapps:

>>> from django.core.mail import send_mail
>>> send_mail('subject', 'message', "Don't Reply <do_not_reply@domain.example>", ['youremail@example.com'])

I use this code to send through gmail smtp (using google apps). and sender names are 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()
Related