我正在使用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
答案 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
中使用MANAGERS
和setting.py
元组。 E.g:
ADMINS = (('Your Name', 'email@company.com),)
然后:
django.core.email.mail_managers('subject', 'body')
答案 3 :(得分:1)
DEFAULT_FROM_EMAIL ='(我的公司)支持'
帮我解决了这个问题。