#35713: Django generates invalid address on unicode characters in the local 
part of
an e-mail address
------------------------------+---------------------------------------
     Reporter:  Mike Edmunds  |                    Owner:  YashRaj1506
         Type:  Bug           |                   Status:  assigned
    Component:  Core (Mail)   |                  Version:  dev
     Severity:  Normal        |               Resolution:
     Keywords:                |             Triage Stage:  Accepted
    Has patch:  0             |      Needs documentation:  0
  Needs tests:  0             |  Patch needs improvement:  0
Easy pickings:  0             |                    UI/UX:  0
------------------------------+---------------------------------------
Description changed by Mike Edmunds:

Old description:

> #25986 attempted to add support for non-ASCII characters in the local-
> part (username) of an email address, by encoding it as an RFC 2047
> encoded-word. [https://github.com/django/django/pull/6377 PR#6377] landed
> in Django 1.10.
>
> However, RFC 2047
> [https://datatracker.ietf.org/doc/html/rfc2047#section-5:~:text=An%20%27encoded%2Dword%27%20MUST%20NOT%20appear%20in%20any%20portion%20of%20an%20%27addr%2Dspec%27.
> specifically prohibits] using an encoded-word in an addr-spec (the
> username@domain portion of an email address). Encoded-words are only
> allowed in address display-names.
>
> The resulting email address is not supported by any known MTA or email
> client, and the message will either bounce or just disappear undelivered.
>
> To reproduce:
>
> {{{#!python
> from django.core.mail import EmailMessage
> email = EmailMessage(to=["jö[email protected]"])
> print(email.message().as_bytes().decode())  # examine generated message
> # ...
> # To: [email protected]
> # ...
> email.send()  # if you've set up a mailbox for jörg at example.no
> }}}
>
> Actual results: as above (no errors)
>
> Expected results: no `=?utf-8?...` encoded-word in the generated ''To''
> addr-spec. And an error on the call to `send()` (or `message()`) saying
> that a non-ASCII local-part is not supported.
>
> There is ''no'' supported way to send to non-ASCII usernames using 7-bit
> email headers. That requires using 8-bit headers with the SMTPUTF8
> extension under RFC 6530/6531/6532. (I'll open a separate feature request
> ticket about that; this ticket is solely about removing the current buggy
> behavior.)
>
> For more details see
> [https://code.djangoproject.com/ticket/25986#comment:12 #25986 comments
> 12-13].

New description:

 #25986 attempted to add support for non-ASCII characters in the local-part
 (username) of an email address, by encoding it as an RFC 2047 encoded-
 word. [https://github.com/django/django/pull/6377 PR#6377] landed in
 Django 1.10.

 However, RFC 2047
 
[https://datatracker.ietf.org/doc/html/rfc2047#section-5:~:text=An%20%27encoded%2Dword%27%20MUST%20NOT%20appear%20in%20any%20portion%20of%20an%20%27addr%2Dspec%27.
 specifically prohibits] using an encoded-word in an addr-spec (the
 username@domain portion of an email address). Encoded-words are only
 allowed in address display-names.

 The resulting email address is not supported by any known MTA or email
 client, and the message will either bounce or just disappear undelivered.

 To reproduce:

 {{{#!python
 from django.core.mail import EmailMessage
 email = EmailMessage(to=["jö[email protected]"])
 print(email.message().as_bytes().decode())  # examine generated message
 # ...
 # To: [email protected]
 # ...
 email.send()  # if you've set up a mailbox for jörg at example.no
 }}}

 Actual results: as above (no errors)

 Expected results: no `=?utf-8?...` encoded-word in the generated ''To''
 addr-spec. And an error on the call to `send()` (or `message()`) saying
 that a non-ASCII local-part is not supported.

 There is ''no'' supported way to send to non-ASCII usernames using 7-bit
 email headers. That requires using 8-bit headers with the SMTPUTF8
 extension under RFC 6530/6531/6532. (That new feature request is ticket
 #35714; this ticket is solely about removing the current buggy behavior.)

 For more details see
 [https://code.djangoproject.com/ticket/25986#comment:12 #25986 comments
 12-13].

--
-- 
Ticket URL: <https://code.djangoproject.com/ticket/35713#comment:3>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/01070191b9ba9ee4-7e8be02c-941e-45b4-ba88-d550f3bed512-000000%40eu-central-1.amazonses.com.

Reply via email to