The RFC does not specifically disallow case-insensitive email addresses, no.
This all feels like a moot point. Messing with user data (read: not rejecting
it) before it hits the database for ‘technical’ reasons is certainly swimming
against the tide. You hardly ever see it these days. If you
Hi,
As far as I know, Google, which runs mail servers for about 85% of users
worldwide (Gmail + Workspace users), email addresses and usernames are case
insensitive. So if you send me for example an email to u...@speedy.net, I
will receive it. Although according to the RFC it should have been
That’s a matter of perspective - RFC 5321 documents it pretty well. While I
agree that, speculatively, the majority of servers may normalize emails to
lower-case, it’s not officially recognized. I’m a fan of exhaustive
documentation, but this is a standard set by an arguably higher authority.
The current behaviour is an undocumented gotcha. It should at least be
mentioned in the documentation. Very few major login based platforms are
case sensitive, so it should be at least mentioned in the documentation
that by default applications built with Django would be different in that
regard.
IMO this treads dangerously close to what I call a “Django Gotcha” - There
exist some implementations, where if you’re not paying attention, it’ll come
back to bite you in the keister. One example would be the test runner coercing
DEBUG=False in an effort for tests to more accurately reflect a
Also a strong -1. While it is rare, it is perfectly legitimate to have a
mail server treat the name portion of an email address as being case
sensitive.
Yes, you can find a lot of wrong answers on the internet stating
otherwise, but paragraph 2.4 of RFC 5321 clearly states that the
Purely anecdotal, but I've never had a user intentionally signup for an
account with a case-sensitive email address. I'm not such which users
expect their username or email addresses to be case-sensitive.
Arthur
On Sunday, December 12, 2021 at 10:40:30 PM UTC-5 m...@kye.id.au wrote:
> Strong
Strong -1 on overriding user intent on capitalisation, especially for email
addresses as the RFC stipulates that the local part of an email address is case
sensitive, this is just rarely practiced. There are much better solutions out
there (CI[Text|Char]FIeld in Postgres, etc) that enforce
A setting to convert all usernames to lowercase would be good too -- that's
my preference overall in general. However I haven't yet seen how best that
could/would be accomplished.
For simpler uses case where I'm just sub-classing AbstractUser and not
customizing the auth backend, I've taken to
Hi Arthur,
I would recommend users of Django to use only lowercase usernames. And if
they insist that the username is an email address, also convert it to
lowercase. Otherwise you can have 3 separate users uri, Uri, and uRI, or 3
separate users with email addresses u...@example.com,
Especially with the ability to set USERNAME_FIELD to "email", it would be
really useful to at least have a well documented warning that usernames are
case-sensitive in Django.
I've been using Django for years, and even I forget that fact some times.
Until I start Googling and come across [1].
11 matches
Mail list logo