Email Normalizer

Normalize email addresses in bulk: lowercase them, strip Gmail dots and plus tags, unify provider aliases and remove duplicates that only differ cosmetically.

Turn a messy list of addresses into one canonical form each. Paste one address per line. The tool lowercases each address and, depending on the options, removes Gmail dots, strips plus tags, unifies provider aliases and drops duplicates that only look different.

Details

Original Normalized Status

What email normalization actually changes

The problem

Alice.Smith+news@Gmail.com, alicesmith@googlemail.com and alicesmith@gmail.com all deliver to the same inbox, yet a naive SELECT ... WHERE email = ? treats them as three different people. That is how you end up with duplicate accounts, three copies of the same newsletter, and a free trial that someone renewed eleven times.

Normalization collapses these variants to one canonical string you can index and compare.

The four rules

Case. The domain part is case-insensitive by RFC 1035, and while the local part is technically case-sensitive by RFC 5321, no mainstream provider treats it that way. Lowercasing everything is safe in practice and is the one rule you should always apply.

Dots. Gmail ignores dots in the local part: a.li.ce@gmail.com equals alice@gmail.com. This is a Gmail-specific behaviour. Applying it to Outlook, Yahoo or a corporate domain would merge genuinely different people, so this tool only strips dots for gmail.com and googlemail.com.

Plus tags. Sub-addressing (alice+shopping@gmail.com) is supported by Gmail, Outlook, Fastmail, iCloud and most modern servers. Yahoo uses a hyphen instead of a plus. The tag is a label for filtering, not part of the identity, so it can be removed — but see the caveat below.

Provider aliases. googlemail.com is the same service as gmail.com, and hotmail.com, live.com and msn.com all resolve into the Microsoft consumer platform. Mapping them to one canonical domain catches another slice of duplicates.

When not to normalize

Store the address the user typed and use the normalized form only as a comparison key. Never send mail to the normalized version — you would strip a plus tag the recipient relies on for filtering, and some legitimate corporate mailboxes really do contain a +.

Be careful with plus-tag stripping in an anti-abuse context too. It genuinely does block one-person-many-trials, but it also punishes privacy-conscious users who tag every signup. Treat it as a signal, not a verdict.

And do not use this as validation. A syntactically perfect address can still bounce; only a confirmation email proves deliverability.

Open source note: implemented from scratch in vanilla JavaScript using documented provider behaviour. No third-party library and no network request.

Frequently asked questions

Should I store the normalized address instead of the original?
No. Store both — the original for sending mail, the normalized form as a unique index for lookups and duplicate detection.
Why are dots only removed for Gmail?
Because only Gmail ignores them. On Outlook, Yahoo or a company domain, john.smith@ and johnsmith@ can be two different employees, and merging them would deliver mail to the wrong person.
Does every provider support plus tags?
Most modern ones do, but not all. Yahoo uses a hyphen, and some older or self-hosted servers reject a plus outright. Never assume a tagged address will be accepted.
Is normalization a form of validation?
No. It only rewrites the string into a canonical shape. Whether the mailbox exists can only be established by sending a confirmation message.
Are my addresses uploaded anywhere?
No. The entire list is processed in your browser with plain JavaScript and never leaves the page.