diff --git a/CHANGELOG.rst b/CHANGELOG.rst index d8f1c3c..3b9be0e 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -33,6 +33,9 @@ vNext Fixes ~~~~~ +* **Postmark:** Fix spurious AnymailInvalidAddress in ``message.cc`` when + inbound message has no Cc recipients. (Thanks to `@Ecno92`_.) + * **Postmark:** Workaround for handling inbound test webhooks. (`More info `__) @@ -1428,6 +1431,7 @@ Features .. _@dgilmanAIDENTIFIED: https://github.com/dgilmanAIDENTIFIED .. _@dimitrisor: https://github.com/dimitrisor .. _@dominik-lekse: https://github.com/dominik-lekse +.. _@Ecno92: https://github.com/Ecno92 .. _@erikdrums: https://github.com/erikdrums .. _@ewingrj: https://github.com/ewingrj .. _@fdemmer: https://github.com/fdemmer diff --git a/anymail/inbound.py b/anymail/inbound.py index 21dbee0..1b3d35c 100644 --- a/anymail/inbound.py +++ b/anymail/inbound.py @@ -113,7 +113,10 @@ class AnymailInboundMessage(Message): """ values = self.get_all(header) if values is not None: - values = parse_address_list(values) + if "".join(values).strip() == "": + values = None + else: + values = parse_address_list(values) return values or [] def get_date_header(self, header): diff --git a/tests/test_inbound.py b/tests/test_inbound.py index b659bf2..224f827 100644 --- a/tests/test_inbound.py +++ b/tests/test_inbound.py @@ -307,6 +307,12 @@ class AnymailInboundMessageConveniencePropTests(SimpleTestCase): self.assertEqual(msg.to, []) self.assertEqual(msg.cc, []) + # Empty strings + msg = AnymailInboundMessage.construct(from_email="", to="", cc="") + self.assertIsNone(msg.from_email) + self.assertEqual(msg.to, []) + self.assertEqual(msg.cc, []) + def test_body_props(self): msg = AnymailInboundMessage.construct(text="Test plaintext", html="Test HTML") self.assertEqual(msg.text, "Test plaintext")