diff --git a/djrill/mail/backends/djrill.py b/djrill/mail/backends/djrill.py index 6ddc7ce..3e2f945 100644 --- a/djrill/mail/backends/djrill.py +++ b/djrill/mail/backends/djrill.py @@ -87,6 +87,7 @@ class DjrillBackend(BaseEmailBackend): if getattr(message, 'alternatives', None): self._add_alternatives(message, msg_dict) self._add_attachments(message, msg_dict) + self._filter_msg_dict(message, msg_dict) api_params['message'] = msg_dict # check if template is set in message to send it via @@ -313,3 +314,11 @@ class DjrillBackend(BaseEmailBackend): 'content': content_b64.decode('ascii'), } return mandrill_attachment, is_embedded_image + + def _filter_msg_dict(self, message, msg_dict): + """Filter message data (e.g. clear subject field, or from field)""" + if hasattr(message, 'clear_from') and message.clear_from: + msg_dict['from_name'] = '' + msg_dict['from_email'] = '' + if hasattr(message, 'clear_subject') and message.clear_subject: + msg_dict['subject'] = '' diff --git a/djrill/tests/test_mandrill_send_template.py b/djrill/tests/test_mandrill_send_template.py index ed987b9..3242259 100644 --- a/djrill/tests/test_mandrill_send_template.py +++ b/djrill/tests/test_mandrill_send_template.py @@ -27,6 +27,20 @@ class DjrillMandrillSendTemplateTests(DjrillBackendMockAPITestCase): 'content': "
Half off all fruit
"} ] ) + 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.clear_from = True + msg.clear_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.assertEqual(data['message']['subject'], "") + self.assertEqual(data['message']['from_email'], "") + self.assertEqual(data['message']['from_name'], "") + def test_no_template_content(self): # Just a template, without any template_content to be merged msg = mail.EmailMessage('Subject', 'Text Body', diff --git a/docs/usage/templates.rst b/docs/usage/templates.rst index 8b9acfc..beac901 100644 --- a/docs/usage/templates.rst +++ b/docs/usage/templates.rst @@ -37,6 +37,24 @@ and will ignore any `body` text set on the `EmailMessage`. All of Djrill's other :ref:`Mandrill-specific options