R. David Murray added the comment:
In order to legitimately have a non-ascii localpart, you *must* be using
RFC6532 and RFC6531. In the email package you do this by using
policy=SMTPUTF8, or setting utf8=True in your custom Policy. In smtplib you do
this by specifying smtputf8 in the
New submission from Matthew :
The parser for passing an addr_spec to email.headerregistry.Address does not
allow non-ASCII local parts, but the rest of the email package handles them
fine, either straight (with explicit references to RFC6532 and SMTPUTF8), or
encoding as expected. Apologies