{"action":"created","issue":{"url":"https://api.github.com/repos/JoshData/python-email-validator/issues/3","labels_url":"https://api.github.com/repos/JoshData/python-email-validator/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/JoshData/python-email-validator/issues/3/comments","events_url":"https://api.github.com/repos/JoshData/python-email-validator/issues/3/events","html_url":"https://github.com/JoshData/python-email-validator/issues/3","id":107549473,"number":3,"title":"local-part normalization","user":{"login":"jab","id":64992,"avatar_url":"https://avatars.githubusercontent.com/u/64992?v=3","gravatar_id":"","url":"https://api.github.com/users/jab","html_url":"https://github.com/jab","followers_url":"https://api.github.com/users/jab/followers","following_url":"https://api.github.com/users/jab/following{/other_user}","gists_url":"https://api.github.com/users/jab/gists{/gist_id}","starred_url":"https://api.github.com/users/jab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jab/subscriptions","organizations_url":"https://api.github.com/users/jab/orgs","repos_url":"https://api.github.com/users/jab/repos","events_url":"https://api.github.com/users/jab/events{/privacy}","received_events_url":"https://api.github.com/users/jab/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2015-09-21T16:27:57Z","updated_at":"2015-09-22T14:22:59Z","closed_at":null,"body":"First off, thanks for releasing this, it's fantastic.\r\n\r\nI'm wondering about further normalization of the [local part](https://en.wikipedia.org/wiki/Email_address#Local-part_normalization). email_validator currently performs as much normalization as it can without provider-specific information, e.g. lowercasing the domain.\r\n\r\nBut (as you know) [many](https://mail.google.com) [popular](https://mail.yahoo.com) [email](https://hotmail.com) [providers](https://mail.icloud.com) are completely case-insensitive, [some](https://support.google.com/mail/answer/10313?hl=en) are dot-insensitive, and still more support [disposable email addresses](https://en.wikipedia.org/wiki/Disposable_email_address) via [sub-addressing](https://en.wikipedia.org/wiki/Email_address#Sub-addressing) (e.g. foo+tag@bar.com).\r\n\r\nCurious if you have any recommendations on how to handle this (ignore and just allow multiple accounts to share the same inbox, normalize and prevent, ...?), or even interest in adding limited support for provider-specific normalization. I notice email_validator already does an MX lookup; from there it could apply e.g. Google Mail-specific local-part normalization rules upon finding a Google Mail-hosted domain, etc.\r\n\r\nThanks again for email_validator and look forward to hearing what you think."},"comment":{"url":"https://api.github.com/repos/JoshData/python-email-validator/issues/comments/142303745","html_url":"https://github.com/JoshData/python-email-validator/issues/3#issuecomment-142303745","issue_url":"https://api.github.com/repos/JoshData/python-email-validator/issues/3","id":142303745,"user":{"login":"jab","id":64992,"avatar_url":"https://avatars.githubusercontent.com/u/64992?v=3","gravatar_id":"","url":"https://api.github.com/users/jab","html_url":"https://github.com/jab","followers_url":"https://api.github.com/users/jab/followers","following_url":"https://api.github.com/users/jab/following{/other_user}","gists_url":"https://api.github.com/users/jab/gists{/gist_id}","starred_url":"https://api.github.com/users/jab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jab/subscriptions","organizations_url":"https://api.github.com/users/jab/orgs","repos_url":"https://api.github.com/users/jab/repos","events_url":"https://api.github.com/users/jab/events{/privacy}","received_events_url":"https://api.github.com/users/jab/received_events","type":"User","site_admin":false},"created_at":"2015-09-22T14:22:59Z","updated_at":"2015-09-22T14:22:59Z","body":"> I don't think an MX lookup helps here. Just using the domain in the email address would make the most sense.\r\n\r\nThe MX lookup is because e.g. Google Apps for Domains allows people to use Google Mail for their custom domains. So the same normalizations that apply to gmail.com apply to any domain where the MX record points to *.google.com.\r\n\r\n> But, still, it would be a major effort to begin collecting domain names that allow downcasing.\r\n\r\nAgain, the point wouldn't be to provide an exhaustive list; the two rulesets in my previous comment would cover a vast majority of general cases. And you could be real clear about not being interested in covering anything else.\r\n\r\n> What would you want to say in the readme?\r\n\r\nThe readme currently lists \"Normalizes email addresses (super important...)\" under \"Key features\". But then makes no mention of local-part normalization.\r\n\r\nSo as a first cut, it could at least say \"We don't support local-part normalization because [reasons](https://github.com/JoshData/python-email-validator/issues/3)\" (or \"We only support limited local-part normalization...\" etc)"}}