通过Google Apps使用Django发送电子邮件时,给电子邮件帐户命名


84

我正在通过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
设置.EMAIL_HOST ='smtp.gmail.com'

谢谢

Answers:


142

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

在您的django项目的外壳程序中尝试此操作,以测试它是否也适用于间隙:

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

1
感谢您的发布!希望我昨天(b / c)看到了它,它将为我节省一些时间。我只是在< docs.djangoproject.com/en/dev/topics/email/… >上阅读了文档,最后更仔细地阅读了“ from_email”,并找到了与您相同的答案。当我看到您的答案时,只是来这里发布答案。无论如何,再次感谢!很高兴终于有了这项工作
rfadams

10
您也可以像这样在settings.py上设置DEFAULT_FROM_EMAIL: DEFAULT_FROM_EMAIL = 'Dont Reply <do_not_reply@domain.com>'
MarcTudurí15年

只要确保您没有设置与auth_user相同的名称的电子邮件,因为它会在身份验证时失败
iamkhush

@iamkhush-您的意思是setting the same email with name as aut_user。我收到验证错误。我不明白为什么?
PythonEnthusiast

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”。


-5

我使用此代码通过gmail smtp发送(使用Google Apps)。和发件人名称都可以

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

这实际上与Django的EmailMessage类在后台使用的代码相同。无论如何,我尝试了您的方法,但电子邮件仍然具有do_not_reply发件人的姓名。感谢您的尝试
rfadams

3
以及设置。DEFAULT_EMAIL_FROM呢?
2010
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.