#11019: Make BytesGenerator handle Message with None body.

Bug discovery and initial patch by Victor Stinner.
diff --git a/Lib/email/generator.py b/Lib/email/generator.py
index 9d33f1c..531fa9a 100644
--- a/Lib/email/generator.py
+++ b/Lib/email/generator.py
@@ -377,6 +377,8 @@
     def _handle_text(self, msg):
         # If the string has surrogates the original source was bytes, so
         # just write it back out.
+        if msg._payload is None:
+            return
         if _has_surrogates(msg._payload):
             self.write(msg._payload)
         else:
diff --git a/Lib/email/test/test_email.py b/Lib/email/test/test_email.py
index e4083ad..16772b1 100644
--- a/Lib/email/test/test_email.py
+++ b/Lib/email/test/test_email.py
@@ -2989,6 +2989,13 @@
         email.generator.BytesGenerator(out).flatten(msg)
         self.assertEqual(out.getvalue(), self.non_latin_bin_msg)
 
+    def test_bytes_generator_handles_None_body(self):
+        #Issue 11019
+        msg = email.message.Message()
+        out = BytesIO()
+        email.generator.BytesGenerator(out).flatten(msg)
+        self.assertEqual(out.getvalue(), b"\n")
+
     non_latin_bin_msg_as7bit_wrapped = textwrap.dedent("""\
         From: foo@bar.com
         To: =?unknown-8bit?q?b=C3=A1z?=