Opened 13 years ago
Last modified 4 months ago
#17193 new New feature
Send templated email. — at Initial Version
Reported by: | Tom Christie | Owned by: | nobody |
---|---|---|---|
Component: | Core (Mail) | Version: | |
Severity: | Normal | Keywords: | |
Cc: | Chris Streeter, artem.rizhov@…, chuck-norris@…, cmawebsite@… | Triage Stage: | Accepted |
Has patch: | yes | Needs documentation: | yes |
Needs tests: | yes | Patch needs improvement: | yes |
Easy pickings: | no | UI/UX: | no |
Description
If your sending email it's likely that you want to render the body text from template, but there's currently no shortcut to send an email based on a template.
The attached patch is based on a stripped down version of https://github.com/bradwhittington/django-templated-email
It adds django.shortcuts.send_templated_mail
, which mirrors the existing send_mail
, but which renders the subject and body of the mail from a template, rather than taking their values explicitly. It also supports multipart html/plaintext emails.
The docs will look something like this...
send_templated_mail(template_name, from_email, recipient_list, dictionary=None, context_instance=None, fail_silently=False, auth_user=None, auth_password=None, connection=None):
Sends a mail, rendering the subject and body of the email from a template.
The template should contain a block named 'subject', and either/both of a 'plain' and/or 'html' block.
If only the 'plain' block exists, a plaintext email will be sent.
If only the 'html' block exists, the plaintext component will be automatically generated from the html, and a multipart email will be sent.
If both the 'plain' and 'html' blocks exist, a multipart email will be sent.
Required arguments:
template_name
- The template that should be used to render the email.
from_email
- The sender's email address.
recipient_list
- A list of reciepient's email addresses.
Optional arguments:
dictionary
- The context dictionary used to render the template. By default, this is an empty dictionary.
context_instance
- The Context instance used to render the template. By default, the template will be rendered with a Context instance (filled with values from dictionary).
fail_silently
- As insend_mail
.
auth_user
- As insend_mail
.
auth_password
- As insend_mail
.
connection
- As insend_mail
.