【问题标题】:How to specify name in Django mail?如何在 Django 邮件中指定名称?
【发布时间】: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

【问题讨论】:

标签: django django-registration


【解决方案1】:

你可以使用

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

作为调用 send_mail 的发件人地址。

【讨论】:

    【解决方案2】:

    您可以在setting.py 中使用ADMINSMANAGERS 元组。例如:

    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='(我的公司)支持'

      帮助我解决了这个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-11-15
        • 2017-10-19
        • 2012-01-30
        • 1970-01-01
        • 1970-01-01
        • 2014-11-24
        • 2011-06-16
        • 2017-07-13
        相关资源
        最近更新 更多