要发送带有HTML标记的电子邮件,我使用django-templated-email。我该如何更改主题?
send_templated_mail(
template_name='druduser/views/register_email',
from_email=settings.DEFAULT_FROM_EMAIL,
recipient_list=[email],
context={'username': username,},
)
我找到了解决方案:
我必须将{% block subject %}
块放在{% block html %}
...
感谢您的帮助!
答案 0 :(得分:2)
来自docs的引用:
出于传统目的,您可以在设置中指定电子邮件主题 file(但是,首选方法是使用{%block subject%} 你的模板)
因此,您可以通过定义subject
块在模板中指定自定义主题:请参阅docs。
如果您想使用TEMPLATED_EMAIL_DJANGO_SUBJECTS
设置,template_name
应该只是实际模板的名称(不带扩展名)。
在TEMPLATED_EMAIL_DJANGO_SUBJECTS
中定义settings.py
字典,例如:
TEMPLATED_EMAIL_DJANGO_SUBJECTS = {
'welcome':'Welcome to my website',
}
定义获取模板和文件扩展名的位置:
TEMPLATED_EMAIL_TEMPLATE_DIR = 'templated_email/' #Use '' for top level template dir
TEMPLATED_EMAIL_FILE_EXTENSION = 'email'
然后使用welcome
作为template_name
发送邮件:
send_templated_mail(
template_name='welcome',
from_email=settings.DEFAULT_FROM_EMAIL,
recipient_list=[email],
context={'username': username,},
)
在这种情况下,您的模板应该在templated_email/welcome.email
。
希望有所帮助。