#15232: correctly mangle From lines in MIME preamble and epilogue
diff --git a/Lib/email/generator.py b/Lib/email/generator.py
index eb71044..5626ab9 100644
--- a/Lib/email/generator.py
+++ b/Lib/email/generator.py
@@ -212,7 +212,11 @@
msg.set_boundary(boundary)
# If there's a preamble, write it out, with a trailing CRLF
if msg.preamble is not None:
- print >> self._fp, msg.preamble
+ if self._mangle_from_:
+ preamble = fcre.sub('>From ', msg.preamble)
+ else:
+ preamble = msg.preamble
+ print >> self._fp, preamble
# dash-boundary transport-padding CRLF
print >> self._fp, '--' + boundary
# body-part
@@ -230,7 +234,11 @@
self._fp.write('\n--' + boundary + '--')
if msg.epilogue is not None:
print >> self._fp
- self._fp.write(msg.epilogue)
+ if self._mangle_from_:
+ epilogue = fcre.sub('>From ', msg.epilogue)
+ else:
+ epilogue = msg.epilogue
+ self._fp.write(epilogue)
def _handle_multipart_signed(self, msg):
# The contents of signed parts has to stay unmodified in order to keep