mirror of
https://github.com/pacnpal/django-anymail.git
synced 2025-12-21 12:21:06 -05:00
Merge branch 'nikolay-saskovets-feature/use-mandrill-template-defaults'
This commit is contained in:
@@ -15,3 +15,4 @@ Eric Hennings
|
|||||||
Michael Hobbs
|
Michael Hobbs
|
||||||
Sameer Al-Sakran
|
Sameer Al-Sakran
|
||||||
Kyle Gibson
|
Kyle Gibson
|
||||||
|
nikolay-saskovets
|
||||||
|
|||||||
@@ -144,13 +144,17 @@ class DjrillBackend(BaseEmailBackend):
|
|||||||
content = "html" if message.content_subtype == "html" else "text"
|
content = "html" if message.content_subtype == "html" else "text"
|
||||||
msg_dict = {
|
msg_dict = {
|
||||||
content: message.body,
|
content: message.body,
|
||||||
"subject": message.subject,
|
|
||||||
"from_email": from_email,
|
|
||||||
"to": to_list
|
"to": to_list
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if not getattr(message, 'use_template_from', False):
|
||||||
|
msg_dict["from_email"] = from_email
|
||||||
if from_name:
|
if from_name:
|
||||||
msg_dict["from_name"] = from_name
|
msg_dict["from_name"] = from_name
|
||||||
|
|
||||||
|
if not getattr(message, 'use_template_subject', False):
|
||||||
|
msg_dict["subject"] = message.subject
|
||||||
|
|
||||||
if message.extra_headers:
|
if message.extra_headers:
|
||||||
msg_dict["headers"] = message.extra_headers
|
msg_dict["headers"] = message.extra_headers
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,29 @@ class DjrillMandrillSendTemplateTests(DjrillBackendMockAPITestCase):
|
|||||||
'content': "<p><em>Half off</em> all fruit</p>"} ]
|
'content': "<p><em>Half off</em> all fruit</p>"} ]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_send_template_without_from_field(self):
|
||||||
|
msg = mail.EmailMessage('Subject', 'Text Body',
|
||||||
|
'from@example.com', ['to@example.com'])
|
||||||
|
msg.template_name = "PERSONALIZED_SPECIALS"
|
||||||
|
msg.use_template_from = True
|
||||||
|
msg.send()
|
||||||
|
self.assert_mandrill_called("/messages/send-template.json")
|
||||||
|
data = self.get_api_call_data()
|
||||||
|
self.assertEqual(data['template_name'], "PERSONALIZED_SPECIALS")
|
||||||
|
self.assertFalse('from_email' in data['message'])
|
||||||
|
self.assertFalse('from_name' in data['message'])
|
||||||
|
|
||||||
|
def test_send_template_without_subject_field(self):
|
||||||
|
msg = mail.EmailMessage('Subject', 'Text Body',
|
||||||
|
'from@example.com', ['to@example.com'])
|
||||||
|
msg.template_name = "PERSONALIZED_SPECIALS"
|
||||||
|
msg.use_template_subject = True
|
||||||
|
msg.send()
|
||||||
|
self.assert_mandrill_called("/messages/send-template.json")
|
||||||
|
data = self.get_api_call_data()
|
||||||
|
self.assertEqual(data['template_name'], "PERSONALIZED_SPECIALS")
|
||||||
|
self.assertFalse('subject' in data['message'])
|
||||||
|
|
||||||
def test_no_template_content(self):
|
def test_no_template_content(self):
|
||||||
# Just a template, without any template_content to be merged
|
# Just a template, without any template_content to be merged
|
||||||
msg = mail.EmailMessage('Subject', 'Text Body',
|
msg = mail.EmailMessage('Subject', 'Text Body',
|
||||||
|
|||||||
@@ -37,6 +37,33 @@ and will ignore any `body` text set on the `EmailMessage`.
|
|||||||
All of Djrill's other :ref:`Mandrill-specific options <mandrill-send-support>`
|
All of Djrill's other :ref:`Mandrill-specific options <mandrill-send-support>`
|
||||||
can be used with templates.
|
can be used with templates.
|
||||||
|
|
||||||
|
How To Use Default Mandrill Subject and From fields
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
To use default Mandrill "subject" or "from" field from your template definition
|
||||||
|
(overriding your EmailMessage and Django defaults), set the following attrs:
|
||||||
|
:attr:`use_template_subject` and/or :attr:`use_template_from` on
|
||||||
|
your :class:`~django.core.mail.EmailMessage` object::
|
||||||
|
# ...
|
||||||
|
msg.use_template_subject = True
|
||||||
|
msg.use_template_from = True
|
||||||
|
msg.send()
|
||||||
|
|
||||||
|
.. attribute:: use_template_subject
|
||||||
|
|
||||||
|
If `True`, Djrill will omit the subject, and Mandrill will
|
||||||
|
use the default subject from the template.
|
||||||
|
|
||||||
|
.. versionadded:: 1.1
|
||||||
|
|
||||||
|
.. attribute:: use_template_from
|
||||||
|
|
||||||
|
If `True`, Djrill will omit the "from" field, and Mandrill will
|
||||||
|
use the default "from" from the template.
|
||||||
|
|
||||||
|
.. versionadded:: 1.1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. _django-templates:
|
.. _django-templates:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user