[New-bugs-announce] [issue30532] email.policy.SMTP.fold() mangles long headers

Chris Bradley report at bugs.python.org
Wed May 31 18:08:53 EDT 2017

New submission from Chris Bradley:

When email.policy.SMTP.fold() attempts to wrap a line in which a chunk that does not contain a space is longer than the maximum line length, two things go wrong:
 - The second line does not begin with a space, creating an invalid header.
 - The space before the long chunk is stripped, causing the line break to occur in an invalid place.

In the attached test case, email.policy.SMTP.fold() is called on a line of the style:
Content-Disposition: attachment; filename="<filename>"

<filename> does not contain any spaces and increases in length with each pass. Everything works correctly when 'filename="<filename>"' fits onto one line. However, once it is longer than the maximum line length, the following happens:
 - the space after the semicolon is dropped
 - the line break often splits up the 'filename' keyword
 - the second line loses the initial whitespace

files: test_long_mime_headers.py
messages: 294875
nosy: chrisb at emergence.com
priority: normal
severity: normal
status: open
title: email.policy.SMTP.fold() mangles long headers
versions: Python 3.5
Added file: http://bugs.python.org/file46917/test_long_mime_headers.py

Python tracker <report at bugs.python.org>

More information about the New-bugs-announce mailing list