Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
0f111c13
Commit
0f111c13
authored
Jul 22, 2012
by
R David Murray
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
#15232: correctly mangle From lines in MIME preamble and epilogue
parent
ea2ce479
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
36 additions
and
2 deletions
+36
-2
Lib/email/generator.py
Lib/email/generator.py
+10
-2
Lib/email/test/test_email.py
Lib/email/test/test_email.py
+23
-0
Misc/NEWS
Misc/NEWS
+3
-0
No files found.
Lib/email/generator.py
View file @
0f111c13
...
...
@@ -212,7 +212,11 @@ class Generator:
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 @@ class Generator:
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
...
...
Lib/email/test/test_email.py
View file @
0f111c13
...
...
@@ -9,6 +9,7 @@ import base64
import
difflib
import
unittest
import
warnings
import
textwrap
from
cStringIO
import
StringIO
import
email
...
...
@@ -948,6 +949,28 @@ From the desk of A.A.A.:
Blah blah blah
"""
)
def
test_mangle_from_in_preamble_and_epilog
(
self
):
s
=
StringIO
()
g
=
Generator
(
s
,
mangle_from_
=
True
)
msg
=
email
.
message_from_string
(
textwrap
.
dedent
(
"""
\
From: foo@bar.com
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary=XXX
From somewhere unknown
--XXX
Content-Type: text/plain
foo
--XXX--
From somewhere unknowable
"""
))
g
.
flatten
(
msg
)
self
.
assertEqual
(
len
([
1
for
x
in
s
.
getvalue
().
split
(
'
\
n
'
)
if
x
.
startswith
(
'>From '
)]),
2
)
# Test the basic MIMEAudio class
...
...
Misc/NEWS
View file @
0f111c13
...
...
@@ -90,6 +90,9 @@ Core and Builtins
Library
-------
- Issue #15232: when mangle_from is True, email.Generator now correctly mangles
lines that start with '
From
' that occur in a MIME preamble or epilog.
- Issue #13922: argparse no longer incorrectly strips '
--
's that appear
after the first one.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment