Send templated email.
|Reported by:||tomchristie||Owned by:||julianapplebaum|
|Cc:||streeter, artem.rizhov@…, chuck-norris@…||Triage Stage:||Accepted|
|Has patch:||yes||Needs documentation:||yes|
|Needs tests:||yes||Patch needs improvement:||yes|
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.
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.
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 in send_mail.
auth_user - As in send_mail.
auth_password - As in send_mail.
connection - As in send_mail.
Change History (34)
comment:1 Changed 2 years ago by tomchristie
- Needs documentation set
- Needs tests set
- Patch needs improvement unset
comment:3 Changed 2 years ago by julianapplebaum
comment:5 Changed 2 years ago by tomchristie
- Needs documentation unset
comment:7 in reply to: ↑ 4 Changed 2 years ago by julianapplebaum
- Owner changed from nobody to julianapplebaum
- Status changed from new to assigned
Changed 2 years ago by julianapplebaum
comment:15 follow-up: ↓ 18 Changed 2 years ago by julien
- Triage Stage changed from Accepted to Design decision needed
comment:21 Changed 12 months ago by carljm
- Needs tests set
- Patch needs improvement set
- Triage Stage changed from Design decision needed to Accepted
Changed 12 months ago by carljm
comment:26 Changed 5 months ago by timo
- Resolution set to duplicate
- Status changed from assigned to closed