Allow extra headers from any EmailMessage (not just DjrillMessage)

Also adds test case for basic functionality on django.core.mail.EmailMessage.

Cherry-picked from: medmunds/Djrill@f0503783f
This commit is contained in:
medmunds
2012-11-15 15:49:08 -08:00
parent 1bec172611
commit 1901fd444e
2 changed files with 39 additions and 10 deletions

View File

@@ -96,16 +96,26 @@ class DjrillBackend(BaseEmailBackend):
use by default. Standard text email messages sent through Django will
still work through Mandrill.
"""
return {
msg_dict = {
"text": message.body,
"subject": message.subject,
"from_email": self.sender,
"to": self.recipients
}
if message.extra_headers:
accepted_headers = {}
for k in message.extra_headers.keys():
if k.startswith("X-") or k == "Reply-To":
accepted_headers.update(
{"%s" % k: message.extra_headers[k]})
msg_dict.update({"headers": accepted_headers})
return msg_dict
def _build_advanced_message_dict(self, message):
"""
Builds advanced message dict and attaches any accepted extra headers.
Builds advanced message dict
"""
self.msg_dict.update({
"from_name": message.from_name,
@@ -113,14 +123,6 @@ class DjrillBackend(BaseEmailBackend):
"track_opens": message.track_opens,
})
if message.extra_headers:
accepted_headers = {}
for k in message.extra_headers.keys():
if k.startswith("X-") or k == "Reply-To":
accepted_headers.update(
{"%s" % k: message.extra_headers[k]})
self.msg_dict.update({"headers": accepted_headers})
def _add_alternatives(self, message):
"""