在使用Django EmailMessage类的电子邮件中设置“发件人”标题的正确方法是什么?
我可以发送电子邮件并设置大多数标题没有问题。在使用Django EmailMessage类的电子邮件中设置“发件人”标题的正确方法是什么?
但是这已经让我有相当长一段时间了。
这是我在目前我:
email = EmailMessage(
'My foobar subject!!',
render_to_string(
'emails/new_foobar_email.txt',
{
'foo': foo.something,
'bar': bar.something,
}
),
'[email protected]',
[the_user.email, ],
headers={'From ': 'Darth Vader <[email protected]>'},
)
email.send(
fail_silently=False
)
当电子邮件到达时,它说,这是从“[email protected]”,而不是“黑武士”。
我试过设置标题是这样的:
# 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
说法:
email = EmailMessage(
'My foobar subject!!',
body,
'Darth Vader <[email protected]>',
[the_user.email])
我发现我的原始解决方案中有一个拖尾的空白区域。但是,您的解决方案感觉更清洁,尤其是因为我没有为这些特定电子邮件设置任何其他标头。所以我会和你一起回答。谢谢! – teewuane 2014-09-30 17:36:02
email = EmailMessage(
'My foobar subject!!',
render_to_string(
'emails/new_foobar_email.txt',
{
'foo': foo.something,
'bar': bar.something,
}
),
'[email protected]',
[the_user.email, ],
headers={'From': 'Darth Vader <[email protected]>'},
)
email.send(
fail_silently=False
)
我做错了事情的关键是有后“从”尾随空间。所以这会起作用。
但是,我将简化代码并按照@Daniel Roseman的建议进行操作,并将显示名称放在from参数中,而不是使用标题关键字。
为什么要在标题名称('From')中添加尾部空格? – jjmontes 2014-09-30 17:21:08