Index: Lib/email/test/test_email.py =================================================================== --- Lib/email/test/test_email.py (revision 88200) +++ Lib/email/test/test_email.py (working copy) @@ -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?= Index: Lib/email/generator.py =================================================================== --- Lib/email/generator.py (revision 88200) +++ Lib/email/generator.py (working copy) @@ -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: