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 in send_mail.

auth_user - As in send_mail.

auth_password - As in send_mail.

connection - As in send_mail.

Change History (1)

by Tom Christie, 13 years ago

Attachment: send_templated_mail.diff added
Note: See TracTickets for help on using tickets.
Back to Top