Нормализуйте адреса email пакетно: приведите к нижнему регистру, уберите точки и плюс-теги Gmail, объедините алиасы провайдеров и удалите дубли, отличающиеся только внешне.
Превратите беспорядочный список адресов в один канонический вид для каждого. Вставьте по одному адресу на строку. Инструмент приводит каждый адрес к нижнему регистру и, в зависимости от опций, убирает точки Gmail, отсекает плюс-теги, объединяет алиасы провайдеров и удаляет дубли, которые лишь кажутся разными.
Подробности
Исходный
Нормализованный
Статус
Что на самом деле меняет нормализация email
Проблема
Alice.Smith+news@Gmail.com, alicesmith@googlemail.com и alicesmith@gmail.com доставляются в один и тот же почтовый ящик, но наивный SELECT ... WHERE email = ? считает их тремя разными людьми. Именно так появляются дублирующиеся аккаунты, три копии одной рассылки и бесплатный пробный период, который кто-то продлил одиннадцать раз.
Нормализация сводит эти варианты к одной канонической строке, по которой можно строить индекс и сравнивать.
Четыре правила
Регистр. Часть домена нечувствительна к регистру согласно RFC 1035, а хотя локальная часть технически чувствительна по RFC 5321, ни один распространённый провайдер не делает различий. Приведение всего к нижнему регистру безопасно на практике, и это единственное правило, которое следует применять всегда.
Точки. Gmail игнорирует точки в локальной части: a.li.ce@gmail.com равно alice@gmail.com. Это поведение только Gmail. Применение его к Outlook, Yahoo или корпоративному домену сольёт по-настоящему разных людей, поэтому этот инструмент убирает точки только для gmail.com и googlemail.com.
Плюс-теги. Суб-адресация (alice+shopping@gmail.com) поддерживается Gmail, Outlook, Fastmail, iCloud и большинством современных серверов. Yahoo использует дефис вместо плюса. Тег — это метка для фильтрации, а не часть идентичности, поэтому его можно удалить — но см. оговорку ниже.
Алиасы провайдеров.googlemail.com — это тот же сервис, что и gmail.com, а hotmail.com, live.com и msn.com все сводятся к потребительской платформе Microsoft. Отображение их в один канонический домен ловит ещё один пласт дублей.
Когда нормализовывать не стоит
Храните адрес в том виде, как его ввёл пользователь, и используйте нормализованный вариант только как ключ для сравнения. Никогда не отправляйте почту по нормализованному варианту — вы отсечёте плюс-тег, на который получатель полагается для фильтрации, а у некоторых законных корпоративных ящиков в адресе действительно есть «+».
Будьте осторожны с удалением плюс-тегов и в антиабуз-контексте. Оно действительно блокирует «один человек — много пробных периодов», но также наказывает заботящихся о приватности пользователей, которые тегируют каждую регистрацию. Рассматривайте это как сигнал, а не как приговор.
И не используйте это как валидацию. Синтаксически идеальный адрес всё равно может отскочить; существование ящика доказывает только подтверждающее письмо.
Часто задаваемые вопросы
Стоит ли хранить нормализованный адрес вместо исходного?
Нет. Храните оба — исходный для отправки почты, нормализованный как уникальный индекс для поиска и обнаружения дублей.
Почему точки убираются только для Gmail?
Потому что только Gmail их игнорирует. В Outlook, Yahoo или корпоративном домене john.smith@ и johnsmith@ могут быть двумя разными сотрудниками, и их слияние доставит почту не тому человеку.
Поддерживают ли плюс-теги все провайдеры?
Большинство современных — да, но не все. Yahoo использует дефис, а некоторые старые или самостоятельно размещённые серверы вовсе отвергают плюс. Никогда не предполагайте, что адрес с тегом будет принят.
Является ли нормализация видом валидации?
Нет. Она лишь переписывает строку в канонический вид. Существует ли почтовый ящик, можно установить только отправив подтверждающее сообщение.
Загружаются ли мои адреса куда-либо?
Нет. Весь список обрабатывается в вашем браузере обычным JavaScript и никогда не покидает страницу.