如何在Django邮件中指定名称?

时间:2012-03-28 16:09:06

标签: django django-registration

我正在使用django的core.mail包与django-registration一起使用新用户注册工作流程。我有一个电子邮件帐户,“不回复@(mycompany).com”通过我公司的谷歌邮件服务,我想用来发送这些电子邮件。在谷歌邮件帐户设置中,我将电子邮件帐户的名称设置为“(MyCompany)支持”,这样,如果我直接从谷歌邮件发送邮件,则电子邮件来自帐户,来自“(MyCompany)支持”。但是,当我使用django的电子邮件设置发送邮件时,电子邮件显示在客户端的电子邮箱中,因为它来自“无回复”,这很丑陋,可能对新客户端有点不利。有没有办法在使用django的内置邮件程序发送时为电子邮件地址指定“名称”,以便在收到电子邮件时看到“名称”?

以下是我在settings.py中的当前设置:

EMAIL_HOST='smtp.gmail.com'
EMAIL_PORT=587
EMAIL_HOST_USER='no-reply@mycompany.com'
EMAIL_HOST_PASSWORD='**********'
EMAIL_USE_TLS = True

4 个答案:

答案 0 :(得分:23)

您可以使用

"(MyCompany) Support <no-reply@mycompany.com>"

作为send_mail调用中的起始地址。

答案 1 :(得分:13)

如果您直接使用django的电子邮件包,那么这些解决方案非常有用。但是,我不想寻找一个钩子来覆盖django-registration使用send_mail的方式,所以我在浏览django文件时找到了以下设置,这样你就可以通过电子邮件设置默认值。

 DEFAULT_FROM_EMAIL='(My Company) Support <no-reply@mycompany.com>' 

它有效!

想到别人可能觉得它很有用,虽然我不是那么自命不凡,以至于把我自己的答案标记为正确。

答案 2 :(得分:2)

您可以在ADMINS中使用MANAGERSsetting.py元组。 E.g:

ADMINS = (('Your Name', 'email@company.com),)

然后:

django.core.email.mail_managers('subject', 'body')

答案 3 :(得分:1)

DEFAULT_FROM_EMAIL ='(我的公司)支持'

帮我解决了这个问题。