From d1494735375e8eda3e14c937802e01bb4a04bdfb Mon Sep 17 00:00:00 2001 From: Helmut Irle Date: Wed, 26 Mar 2025 10:48:45 +0200 Subject: [PATCH 1/3] Handle blank addresses in CC and BCC, and add a check to the test. --- sendgrid_backend/mail.py | 9 ++++++--- test/test_mail.py | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/sendgrid_backend/mail.py b/sendgrid_backend/mail.py index de80031..1c1aa2e 100644 --- a/sendgrid_backend/mail.py +++ b/sendgrid_backend/mail.py @@ -301,7 +301,8 @@ def _build_sg_personalization( personalization = Personalization() for addr in to: - personalization.add_to(Email(*self._parse_email_address(addr))) + if addr: + personalization.add_to(Email(*self._parse_email_address(addr))) elif existing_personalizations.tos: personalization = existing_personalizations @@ -310,11 +311,13 @@ def _build_sg_personalization( if not personalization.ccs: for addr in msg.cc: - personalization.add_cc(Email(*self._parse_email_address(addr))) + if addr: + personalization.add_cc(Email(*self._parse_email_address(addr))) if not personalization.bccs: for addr in msg.bcc: - personalization.add_bcc(Email(*self._parse_email_address(addr))) + if addr: + personalization.add_bcc(Email(*self._parse_email_address(addr))) if not personalization.custom_args: for k, v in getattr(msg, "custom_args", {}).items(): diff --git a/test/test_mail.py b/test/test_mail.py index a4389fa..12e4b61 100644 --- a/test/test_mail.py +++ b/test/test_mail.py @@ -48,8 +48,8 @@ def test_EmailMessage(self): body="Hello, World!", from_email="Sam Smith ", to=["John Doe ", "jane.doe@example.com"], - cc=["Stephanie Smith "], - bcc=["Sarah Smith "], + cc=["Stephanie Smith ", ""], # Include blank address to confirm that it's ignored + bcc=["Sarah Smith ", ""], # Include blank address to confirm that it's ignored reply_to=["Sam Smith "], ) From 6769a5cbd28f7b6ce96eae2d62531deaf5d8c386 Mon Sep 17 00:00:00 2001 From: Helmut Irle Date: Wed, 26 Mar 2025 10:54:56 +0200 Subject: [PATCH 2/3] Remove blank check from TO, since this should raise an exception from Sendgrid. --- sendgrid_backend/mail.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sendgrid_backend/mail.py b/sendgrid_backend/mail.py index 1c1aa2e..d50e8ad 100644 --- a/sendgrid_backend/mail.py +++ b/sendgrid_backend/mail.py @@ -301,8 +301,7 @@ def _build_sg_personalization( personalization = Personalization() for addr in to: - if addr: - personalization.add_to(Email(*self._parse_email_address(addr))) + personalization.add_to(Email(*self._parse_email_address(addr))) elif existing_personalizations.tos: personalization = existing_personalizations From c0e47abb36e0bcb183fab2890ab6d59f8c02033b Mon Sep 17 00:00:00 2001 From: Helmut Irle Date: Wed, 26 Mar 2025 10:57:45 +0200 Subject: [PATCH 3/3] Fix line length being exceeded on previous changes. --- test/test_mail.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/test_mail.py b/test/test_mail.py index 12e4b61..b5e78f1 100644 --- a/test/test_mail.py +++ b/test/test_mail.py @@ -48,8 +48,10 @@ def test_EmailMessage(self): body="Hello, World!", from_email="Sam Smith ", to=["John Doe ", "jane.doe@example.com"], - cc=["Stephanie Smith ", ""], # Include blank address to confirm that it's ignored - bcc=["Sarah Smith ", ""], # Include blank address to confirm that it's ignored + # Include blank address to confirm that it's ignored + cc=["Stephanie Smith ", ""], + # Include blank address to confirm that it's ignored + bcc=["Sarah Smith ", ""], reply_to=["Sam Smith "], )