djangoemailnormalize

What does it mean to normalize an email address?


In this example, Django talks about normalizing an email address with self.normalize_email(email) where self is BaseUserManager. When I search for "normalizing emails" it seems to be a practice across all platforms. I see tutorials of how to do it, but nothing really explaining what it is and what it's used for.


Solution

  • For email addresses, foo@bar.com and foo@BAR.com are equivalent; the domain part is case-insensitive according to the RFC specs. Normalizing means providing a canonical representation, so that any two equivalent email strings normalize to the same thing.

    The comments on the Django method explain:

    Normalize the email address by lowercasing the domain part of it.