email: multiline encoded headers
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 77.2k
- Forks
- 36k
- Ø Merge
- 1 T. 9 Std.
- Gemergte PRs (30 T.)
- 558
Beschreibung
Bug report
There seems to be a problem with multiline encoded headers, for example subject headers.
from email import message_from_string, policy
import base64
e = """From: <test@test.com>
To: <test@test.com>
Subject: =?UTF-8?B?0JfQsNGB0YLRgNCw0YXQvtCy0LrQsCAi0JDQu9C40LDQvdGGINCX0LTRgNCw0LLQ?=
=?UTF-8?B?tSIg4oCTINCY0L3QtNC40LLQuNC00YPQsNC70LXQvSDQvdC+0LzQtdGAINC90LAg?=
=?UTF-8?B?0YPQstC10LTQvtC80LvQtdC90LjQtQ==?=
test"""
e = message_from_string(e, policy=policy.default)
s1 = e["Subject"]
try:
e.as_bytes()
except Exception:
print("error")
else:
print("ok")
s = (base64.b64decode("0JfQsNGB0YLRgNCw0YXQvtCy0LrQsCAi0JDQu9C40LDQvdGGINCX0LTRgNCw0LLQ") + base64.b64decode("tSIg4oCTINCY0L3QtNC40LLQuNC00YPQsNC70LXQvSDQvdC+0LzQtdGAINC90LAg")
+ base64.b64decode("0YPQstC10LTQvtC80LvQtdC90LjQtQ==")).decode("utf-8")
del e["Subject"]
e["Subject"] = s
s2 = e["Subject"]
try:
e.as_bytes()
except Exception:
print("error")
else:
print("ok")
print(s1 == s2)
e = """From: <test@test.com>
To: <test@test.com>
Subject: =?UTF-8?B?0JfQsNGB0YLRgNCw0YXQvtCy0LrQsCAi0JDQu9C40LDQvdGGINCX0LTRgNCw0LLQtSIg4oCTINCY0L3QtNC40LLQuNC00YPQsNC70LXQvSDQvdC+0LzQtdGAINC90LAg0YPQstC10LTQvtC80LvQtdC90LjQtQ==?=
test"""
e = message_from_string(e, policy=policy.default)
s3 = e["Subject"]
try:
e.as_bytes()
except Exception:
print("error")
else:
print("ok")
print(s2 == s3)
Your environment
Tested on Python 3.10.4 and 3.11.0a7 on Arch Linux
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Führen Sie die bereitgestellte Reproduktion mit den Einstiegspunkten Python's email.message_from_string, policy.default und as_bytes aus. Vergleichen Sie s1, s2 und s3, einschließlich Serialisierungsfehlern, und verfolgen Sie anschließend die Verarbeitung gefalteter kodierter Subject-Header durch das email-Paket. Als abgeschlossen gilt die Aufgabe, wenn mehrzeilige und einzeilige kodierte Header sich ohne Fehler konsistent verhalten und die dekodierten Werte übereinstimmen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- backend
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 42/100