通过Google Apps向Django发送电子邮件时,为电子邮件帐户指定名称

时间:2010-01-21 17:38:46

标签: django email smtp

我正在通过Google Apps使用Django向用户发送电子邮件。

当用户收到从Django应用程序发送的电子邮件时,他们来自: do_not_reply@domain.com

查看收件箱中的所有电子邮件时,人们会将电子邮件的发件人视为:
do_not_replydo_not_reply@domain.com取决于使用的电子邮件客户端

如果我使用浏览器和Google Apps本身登录该“do_not_reply”帐户,然后向自己发送电子邮件,则电子邮件来自: Dont Reply<do_not_reply@domain.com>

因此,收件箱中电子邮件发件人显示的名称为:
Dont Reply

在Django中,有没有办法将“名称”附加到用于发送电子邮件的电子邮件帐户?

我查看了Django的mail.py,但没有找到解决方案的运气 http://code.djangoproject.com/browser/django/trunk/django/core/mail.py?rev=5548

使用:
Django 1.1
Python 2.6
Ubuntu 9.1
settings.EMAIL_HOST ='smtp.gmail.com'

由于

3 个答案:

答案 0 :(得分:116)

您实际上可以使用"Dont Reply <do_not_reply@domain.com>"作为发送的电子邮件地址。

在你的django项目的shell中试试看它是否也适用于gapps:

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

答案 1 :(得分:0)

除了发送电子邮件的send_mail方法外,还可以使用EmailMultiAlternatives发送带有文本内容的HTML内容的电子邮件。

在你的项目中尝试这个

from django.core.mail import EmailMultiAlternatives
text_content = "Hello World"
# set html_content  
email = EmailMultiAlternatives('subject', text_content, 'Dont Reply <do_not_replay@domain.com>', ['youremail@example.com'])

email.attach_alternative(html_content, 'text/html')
email.send()

这将发送邮件至youremail@example.com,不得回复将被删除作为名称,而不是电子邮件'do_not_replay@domain.com'。

答案 2 :(得分:-5)

我使用此代码通过gmail smtp发送(使用谷歌应用程序)。和发件人姓名都可以

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