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@domai开发者_运维问答n.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
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'])
Apart from the send_mail method to send email, EmailMultiAlternatives can also be used to send email with HTML content with text content as an alternative.
try this in your project
from django.core.mail import EmailMultiAlternatives
text_content = "Hello World"
# set html_content
email = EmailMultiAlternatives('subject', text_content, 'Dont Reply <do_not_reply@domain.example>', ['youremail@example.com'])
email.attach_alternative(html_content, 'text/html')
email.send()
This will send mail to youremail@example.com
with Don't Reply wil be displayed as name instead of email do_not_reply@domain.example
.
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()
精彩评论