如何在 Django 邮件中指定名称?
Posted
技术标签:
【中文标题】如何在 Django 邮件中指定名称?【英文标题】:How to specify name in Django mail? 【发布时间】:2012-04-12 06:47:52 【问题描述】:我将 django 的 core.mail 包与 django-registration 一起用于新用户注册工作流程。我通过我公司的谷歌邮件服务有一个电子邮件帐户“no-reply@(mycompany).com”,我想用它来发送这些电子邮件。在 google 邮件帐户设置中,我将电子邮件帐户的名称设置为“(MyCompany) Support”,这样如果我直接从 google 邮件发送邮件,则来自该帐户的电子邮件将来自“(MyCompany) Support”。但是,当我使用 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
【问题讨论】:
请看这个:***.com/questions/2111452/… 【参考方案1】:你可以使用
"(MyCompany) Support <no-reply@mycompany.com>"
作为调用 send_mail 的发件人地址。
【讨论】:
【参考方案2】:您可以在setting.py
中使用ADMINS
和MANAGERS
元组。例如:
ADMINS = (('Your Name', 'email@company.com),)
然后:
django.core.email.mail_managers('subject', 'body')
【讨论】:
【参考方案3】:如果您直接使用 django 的电子邮件包,这些解决方案很有用。但是,我不想寻找一个钩子来覆盖 django-registration 使用 send_mail 的方式,所以我在浏览 django 文件时找到了以下设置,它可以让你从电子邮件中设置默认值。
DEFAULT_FROM_EMAIL='(My Company) Support <no-reply@mycompany.com>'
它成功了!
认为其他人可能会觉得它很有用,尽管我并没有自命不凡地将自己的答案标记为正确。
【讨论】:
看起来你也可以为SERVER_EMAIL
输入相同的值!【参考方案4】:
DEFAULT_FROM_EMAIL='(我的公司)支持'
帮助我解决了这个问题。
【讨论】:
以上是关于如何在 Django 邮件中指定名称?的主要内容,如果未能解决你的问题,请参考以下文章
在 settings.py 中指定 Django 测试数据库名称
如何在 django 中指定索引类型? (btree 与哈希等)
如何在 django 中指定 login_required 重定向 url?
如何在 Django 的设置文件中指定多个“init_command”
如何在 ExternalReportWSSService 中指定附件名称:deliveryService webservice