Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions anymail/backends/mailgun.py
Original file line number Diff line number Diff line change
Expand Up @@ -253,8 +253,8 @@ def set_track_clicks(self, track_clicks):
def set_track_opens(self, track_opens):
self.data["o:tracking-opens"] = "yes" if track_opens else "no"

# template_id: Mailgun doesn't offer stored templates.
# (The message body and other fields *are* the template content.)
def set_template_id(self, template_id):
self.data["template"] = template_id

def set_merge_data(self, merge_data):
# Processed at serialization time (to allow merging global data)
Expand Down
8 changes: 2 additions & 6 deletions docs/esps/mailgun.rst
Original file line number Diff line number Diff line change
Expand Up @@ -233,14 +233,10 @@ Limitations and quirks

.. _mailgun-templates:

Batch sending/merge and ESP templates
Batch sending/merge
-------------------------------------

Mailgun does not offer :ref:`ESP stored templates <esp-stored-templates>`,
so Anymail's :attr:`~anymail.message.AnymailMessage.template_id` message
attribute is not supported with the Mailgun backend.

Mailgun *does* support :ref:`batch sending <batch-send>` with per-recipient
Mailgun supports :ref:`batch sending <batch-send>` with per-recipient
merge data. You can refer to Mailgun "recipient variables" in your
message subject and body, and supply the values with Anymail's
normalized :attr:`~anymail.message.AnymailMessage.merge_data`
Expand Down
6 changes: 5 additions & 1 deletion tests/test_mailgun_backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -448,7 +448,11 @@ def test_tracking(self):
self.assertEqual(data['o:tracking-opens'], 'no')
self.assertEqual(data['o:tracking-clicks'], 'yes')

# template_id: Mailgun doesn't support stored templates
def test_template_id(self):
self.message.template_id = "welcome_template"
self.message.send()
data = self.get_api_call_data()
self.assertEqual(data['template'], "welcome_template")

def test_merge_data(self):
self.message.to = ['alice@example.com', 'Bob <bob@example.com>']
Expand Down