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