mirror of
https://github.com/python/cpython.git
synced 2026-01-01 21:14:02 +00:00
* gh-121650: Encode newlines in headers, and verify headers are sound (GH-122233)
- Encode header parts that contain newlines
Per RFC 2047:
> [...] these encoding schemes allow the
> encoding of arbitrary octet values, mail readers that implement this
> decoding should also ensure that display of the decoded data on the
> recipient's terminal will not cause unwanted side-effects
It seems that the "quoted-word" scheme is a valid way to include
a newline character in a header value, just like we already allow
undecodable bytes or control characters.
They do need to be properly quoted when serialized to text, though.
- Verify that email headers are well-formed
This should fail for custom fold() implementations that aren't careful
about newlines.
Co-authored-by: Bas Bloemsaat <bas@bloemsaat.org>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
(cherry picked from commit
|
||
|---|---|---|
| .. | ||
| mime | ||
| __init__.py | ||
| _encoded_words.py | ||
| _header_value_parser.py | ||
| _parseaddr.py | ||
| _policybase.py | ||
| architecture.rst | ||
| base64mime.py | ||
| charset.py | ||
| contentmanager.py | ||
| encoders.py | ||
| errors.py | ||
| feedparser.py | ||
| generator.py | ||
| header.py | ||
| headerregistry.py | ||
| iterators.py | ||
| message.py | ||
| parser.py | ||
| policy.py | ||
| quoprimime.py | ||
| utils.py | ||