【问题标题】:What is the proper way to set the "From" header in an email using Django EmailMessage class?使用 Django EmailMessage 类在电子邮件中设置“发件人”标头的正确方法是什么?
【发布时间】:2014-09-30 17:17:11
【问题描述】:

我可以发送电子邮件并毫无问题地设置大多数标题。

但这已经给了我很长一段时间的奇怪结果。

这是我目前所在的位置:

email = EmailMessage(
    'My foobar subject!!',
    render_to_string(
        'emails/new_foobar_email.txt',
        {
            'foo': foo.something,
            'bar': bar.something,
        }
    ),
    'notify@foobar.com',
    [the_user.email, ],
    headers={'From ': 'Darth Vader <darth@vader.com>'},
)
email.send(
    fail_silently=False
)

当电子邮件到达时,它说它来自“notify@foobar.com”而不是“Darth Vader”。

我试过这样设置标题:

# this way worked but was inconsistent. Some email clients showed it was from "unknown sender".
headers={'From ': 'Darth Vader'},

我仔细研究了这份关于 Internet Message Formats (RFC 2822) 的文档,但我不清楚我是否遵循了最佳做法。

我也看到了这个SO Question,但它适用于 send_mail() 函数。它可能是相似的,但它不同的。

我不关心我的电子邮件客户端是否正确显示(它可能会受到污染,因为我尝试了很多不同的方式,并且可能缓存了我做错的方式之一......)但我关心的是遵循最佳实践,使其适用于大多数电子邮件客户端。

问题

使用 EmailMessage 类在电子邮件中设置“发件人”标头的正确方法是什么?而且,与电子邮件客户端最兼容的方式是什么?

【问题讨论】:

  • 为什么要在标题名称后面加一个空格('From')?

标签: python django email email-headers django-email


【解决方案1】:

您可以将详细信息直接放在from 参数中:

email = EmailMessage(
    'My foobar subject!!',
    body,
    'Darth Vader <notify@foobar.com>',
    [the_user.email])

【讨论】:

  • 我发现我的原始解决方案中有一个尾随空格。但是,您的解决方案感觉更干净,尤其是因为我没有为这些特定电子邮件设置任何其他标题。所以我同意你的回答。谢谢!
【解决方案2】:
email = EmailMessage(
    'My foobar subject!!',
    render_to_string(
        'emails/new_foobar_email.txt',
        {
            'foo': foo.something,
            'bar': bar.something,
        }
    ),
    'darth@vader.com',
    [the_user.email, ],
    headers={'From': 'Darth Vader <darth@vader.com>'},
)
email.send(
    fail_silently=False
)

我做错的关键是在“发件人”之后有一个尾随空格。所以这会起作用。

但是。我将简化代码并按照@Daniel Roseman 的建议进行操作,并将显示名称放在 from 参数中,而不使用 headers 关键字。

【讨论】:

    猜你喜欢
    • 2015-04-07
    • 1970-01-01
    • 2019-12-20
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 2010-12-03
    相关资源
    最近更新 更多