Как привести почтовые ящики к единому стилю для сравнения?
Перевести в нижний регистр - это понятно. Везде это будет означать одно и то же.
А что насчёт точек и дефисов? Вроде ещё плюсы даже есть в ящиках...
Т.е. как один и тот же адрес может называться?
Вот гугл где-то написано точки игнорирует... т.е. я так понимаю name.s@gmail.com == names@gmail.com
А name.s@gmail.com равно ли name-s@gmail.com ?
А в яндексе пишут "зарегистрировав логин ivan.petrov, вы будете получать почту, отправленную и на ivan.petrov@yandex.ru, и на ivan-petrov@yandex.ru" - но ничего не сказано про то, равны ли эти почты адресу ivanpetrov@yandex.ru ? Или это могут быть совершенно разные люди?
А ведь это только два почтовых сервиса... а как у других? одинаковые ли у всех правила или у всех разные?
В идеале бы конечно просто удалить из почты точки, тире, плюсы, привести к нижнему регистру и сравнивать... но будет ли в этом ошибка? Может в каком-то почтовом сервисе адреса с точкой и без это разные адреса?
Для правильного вопроса надо знать половину ответа
Интерпретация локальной части почтового адреса полностью зависит от сервера. Никакими стандартами она не оговаривается. В зависимости от настроек, в локальной части адреса точки могут как игнорироваться, так и использоваться, она может быть регистрозависимой или нет.
Плюс и символ процента, насколько я помню - в адресах имеют некое спецназначение, удалять их нельзя. Что касается точек, тире и прочей экзотики - это целиком и полностью лежит на сервере. Если, допустим, проверка идет по AD, то IvanPetrov, IVANPETROV и ivanpetrov - это один и тот же человек, а если проверка по собственной парольной базе, то это - внезапно - могут оказаться три разных человека.