summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2016-11-10 14:07:19 +0100
committerClaude Paroz <claude@2xlibre.net>2016-11-10 19:47:02 +0100
commit8858631498bca33feb2acde71f9cf6ca2884b1bd (patch)
tree4ecfa77f49e8b3d223ce5b5d9e1d2d889acb43e6
parentac0cf97cb46a07f8f0bf50bac27db4ba2903a8ec (diff)
Fixed #27469 -- Prevented sending email to empty addresses
Thanks Jarek Glowacki for the report.
-rw-r--r--django/core/mail/message.py2
-rw-r--r--tests/mail/tests.py16
2 files changed, 17 insertions, 1 deletions
diff --git a/django/core/mail/message.py b/django/core/mail/message.py
index 98f3cfd632..97703cac0f 100644
--- a/django/core/mail/message.py
+++ b/django/core/mail/message.py
@@ -328,7 +328,7 @@ class EmailMessage(object):
Returns a list of all recipients of the email (includes direct
addressees as well as Cc and Bcc entries).
"""
- return self.to + self.cc + self.bcc
+ return [email for email in (self.to + self.cc + self.bcc) if email]
def send(self, fail_silently=False):
"""Sends the email message."""
diff --git a/tests/mail/tests.py b/tests/mail/tests.py
index e053a65d6a..51497d71cd 100644
--- a/tests/mail/tests.py
+++ b/tests/mail/tests.py
@@ -100,6 +100,22 @@ class MailTests(HeadersCheckMixin, SimpleTestCase):
self.assertEqual(message['From'], 'from@example.com')
self.assertEqual(message['To'], 'to@example.com, other@example.com')
+ def test_recipients_with_empty_strings(self):
+ """
+ Empty strings in various recipient arguments are always stripped
+ off the final recipient list.
+ """
+ email = EmailMessage(
+ 'Subject', 'Content', 'from@example.com', ['to@example.com', ''],
+ cc=['cc@example.com', ''],
+ bcc=['', 'bcc@example.com'],
+ reply_to=['', None],
+ )
+ self.assertEqual(
+ email.recipients(),
+ ['to@example.com', 'cc@example.com', 'bcc@example.com']
+ )
+
def test_cc(self):
"""Regression test for #7722"""
email = EmailMessage('Subject', 'Content', 'from@example.com', ['to@example.com'], cc=['cc@example.com'])