Overview¶
The EmailMessage
(https://docs.djangoproject.com/en/1.9/topics/email/#the-emailmessage-class)
class in Django accepts a number of arguments, and when
you’re sending emails from your app, you need to supply them. Sometimes this
is simple, as the values are fixed (i.e. from_email), whilst others are more
dynamic (such as the message body).
One way or another you need to produce these values and pass them to the class.
And sometimes you want EmailMultipartMessage
instead, for instane when you
want to send plain text _and_ html.
The build_message
function helps you do this by letting you pass arguments,
as well as use blocks from a template to render others.
The Arguments¶
As shown in the Django docs, the EmailMessage
class takes the following
arguments:
- subject
- body
- from_email
- to
- bcc
- connection
- attachments
- headers
- cc
- reply_to
The build_message
function will accept and and all of them as keyword
arguments, but will also try to render any blocks with those names from the
provided template and update the values from there.
Any mix of keyword and template supplied arguments is valid, as long as there
are enough to satisfy the EmailMessage
class.
The unsent message instance is returned, so you can update fields, override them, add attachments or headers, or anything else you like before sending.