Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

gh-81074: Allow non-ASCII addr_spec in email.headerregistry.Address #122477

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
Loading
from

Conversation

medmunds
Copy link
Contributor

@medmunds medmunds commented Jul 30, 2024

The email.headerregistry.Address constructor raised an error if addr_spec contained a non-ASCII character. (But it fully supports non-ASCII in the separate username and domain args.) This change removes the error for a non-ASCII addr_spec.

This PR implements @bitdancer's suggested fix from #81074 (comment):

… But with RFC6532 support, it should be valid to have a local part that has non-ascii in an Address, and the error, as I noted above, should be raised only at serialization time and when we don't have an original source string. So that raise should be modified to explicitly ignore the NonASCIILocalPartDefect.

(The other bugs discussed in that comment are reported separately as #83938 and #122476.)

Fixes gh-81074

The email.headerregistry.Address constructor raised an error if
addr_spec contained a non-ASCII character. (But it fully supports
non-ASCII in the separate username and domain args.) This change
removes the error for a non-ASCII addr_spec.
@medmunds medmunds requested a review from a team as a code owner July 30, 2024 19:16
@ghost
Copy link

ghost commented Jul 30, 2024

All commit authors signed the Contributor License Agreement.
CLA signed

@bedevere-app
Copy link

bedevere-app bot commented Jul 30, 2024

Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool.

If this change has little impact on Python users, wait for a maintainer to apply the skip news label instead.

@encukou
Copy link
Member

encukou commented Mar 19, 2025

@bitdancer, as the email expert, do you want to review this?

@bitdancer
Copy link
Member

Yes, I'll add it to my list. It will take me quite some time to get through the backlog, unfortunately.

if not isinstance(defect, errors.NonASCIILocalPartDefect)
]
if relevant_defects:
raise relevant_defects[0]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I started to write that this should have a comment because the context was lacking, but when I wrote it I realized what this really means is that NonASCIILocalPartDefect is not a true defect. Especially when you consider that the comments say it can only happen when parsing unicode, not when parsing bytes. So instead of doing this, now that we're doing the serialization check (which is where it becomes a true defect) we should just remove the check for this defect in _header_value_parser.

We can't remove it from errors.py for backward compatibility reasons, but it should be marked as deprecated.

@bedevere-app
Copy link

bedevere-app bot commented May 18, 2025

A Python core developer has requested some changes be made to your pull request before we can consider merging it. If you could please address their requests along with any other requests in other reviews from core developers that would be appreciated.

Once you have made the requested changes, please leave a comment on this pull request containing the phrase I have made the requested changes; please review again. I will then notify any core developers who have left a review that you're ready for them to take another look at this pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

email.headerregistry.Address blocks Unicode local part addr_spec accepted elsewhere
5 participants
Morty Proxy This is a proxified and sanitized view of the page, visit original site.