diff --git a/emails/message.py b/emails/message.py index d059267..eec2a78 100644 --- a/emails/message.py +++ b/emails/message.py @@ -136,12 +136,17 @@ class BaseMessage(object): date = property(get_date, set_date) message_date = date + @property def message_id(self): mid = self._message_id if mid is False: return None return is_callable(mid) and mid() or mid + @message_id.setter + def message_id(self, value): + self._message_id = value + @property def attachments(self): if self._attachments is None: @@ -208,7 +213,7 @@ class MessageBuildMixin(object): msg.preamble = self.ROOT_PREAMBLE self.set_header(msg, 'Date', self.date, encode=False) - self.set_header(msg, 'Message-ID', self.message_id(), encode=False) + self.set_header(msg, 'Message-ID', self.message_id, encode=False) if self._headers: for (name, value) in self._headers.items(): diff --git a/emails/testsuite/message/test_message.py b/emails/testsuite/message/test_message.py index 7384852..e21dce1 100644 --- a/emails/testsuite/message/test_message.py +++ b/emails/testsuite/message/test_message.py @@ -159,6 +159,10 @@ def test_message_id(): m = Message(**params) assert not m.as_message()['Message-ID'] + # Check message-id property setter + m.message_id = 'ZZZ' + assert m.as_message()['Message-ID'] == 'ZZZ' + # Check message-id exists when argument specified m = Message(message_id=MessageID(), **params) assert m.as_message()['Message-ID']