email as_bytes() corruption of headers with SMTPUTF8 policy
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 45/100
Piste de recherche
Reproduisez le problème avec email.message_from_bytes et msg.as_bytes(policy=email.policy.SMTPUTF8) en utilisant l’exemple du rapport. Suivez ensuite les points d’entrée de l’analyse et de la sérialisation des en-têtes du paquet email, puis ajoutez un test de régression qui préserve le nom d’affichage Unicode et corresponde à la sortie attendue.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Bug report
Reading and then writing RFC2822 messages with SMTPUTF8 policy results in header corruption.
import email
import email.policy
odata = '''From: Unicôde Nâme <example@example.com>
To: Name One <name-one@example.com>, Name Two <name-two@example.com>, Unicôde Nàme <unicode-name@example.com>
Subject: Unicôde Subjéct
This message contains Uniçôde Çôntent.
'''
msg = email.message_from_bytes(odata.encode(), policy=email.policy.SMTPUTF8)
ndata = msg.as_bytes(policy=email.policy.SMTPUTF8)
print(ndata.decode())
Expected output:
From: Unicôde Nâme <example@example.com>
To: Name One <name-one@example.com>, Name Two <name-two@example.com>,
Unicôde Nàme <unicode-name@example.com>
Subject: Unicôde Subjéct
This message contains Uniçôde Çôntent.
Actual output:
From: Unicôde Nâme <example@example.com>
To: Name One <name-one@example.com>, Name Two <name-two@example.com>,
=?unknown-8bit?q?Unic=C3=B4de_N=C3=A0me?= <unicode-name@example.com>
Subject: Unicôde Subjéct
This message contains Uniçôde Çôntent.
Your environment
- CPython versions tested on: Python 3.11.0
- Operating system and architecture: Linux x86-64, Fedora 37
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 36k
- Merge moyen
- 1 j 9 h
- PR mergées (30 j)
- 558
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de python/cpython
-
docs pending
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
stdlib type-feature
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
stdlib type-feature
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
-
build type-bug
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
-
stdlib topic-email type-feature
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
Toutes les issues de python/cpython
Issues similaires
-
fix: inaccuracy ⚠️
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
uabrc/uabrc.github.io#1255 · 1 commentaire ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
ethereum-optimism/factory#64 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 90/100
duckdb/duckdb-python#627 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
-
Add link for tutorial Ouvertedocumentation
Difficulté 1/5 Moins d'une heure Accessibilité débutants 78/100
Qiskit/qiskit-addon-sqd#376 ·