使用django-templated-email时更改主题

时间:2013-05-29 20:14:49

标签: django email django-templates

要发送带有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 %} ...

之外

感谢您的帮助!

1 个答案:

答案 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

希望有所帮助。