diff --git a/django/core/mail/message.py b/django/core/mail/message.py index 9110fa993b..b25d23881b 100644 --- a/django/core/mail/message.py +++ b/django/core/mail/message.py @@ -231,7 +231,7 @@ class EmailMessage: self.reply_to = [] self.from_email = from_email or settings.DEFAULT_FROM_EMAIL self.subject = subject - self.body = body + self.body = body or '' self.attachments = [] if attachments: for attachment in attachments: diff --git a/tests/mail/tests.py b/tests/mail/tests.py index acce61cf9f..b8d0089ee3 100644 --- a/tests/mail/tests.py +++ b/tests/mail/tests.py @@ -357,6 +357,11 @@ class MailTests(HeadersCheckMixin, SimpleTestCase): msg.attach('example.txt', 'Text file content', 'text/plain') self.assertIn(html_content, msg.message().as_string()) + def test_none_body(self): + msg = EmailMessage('subject', None, 'from@example.com', ['to@example.com']) + self.assertEqual(msg.body, '') + self.assertEqual(msg.message().get_payload(), '') + def test_encoding(self): """ Regression for #12791 - Encode body correctly with other encodings