Многие сайты отправляют почту на указанный адрес электронной почты, содержащий случайно сгенерированный код подтверждения, и принимают регистрацию пользователя только после того, как пользователь подтвердил, что ему удалось прочитать это письмо и получить код подтверждения. Обычно в письме содержится URL-адрес, по которому пользователь может просто нажать для подтверждения.
Если вы сделаете это, все, что вам нужно сделать, это отправить электронное письмо с подтверждением, вместо этого сообщить пользователю, что он уже зарегистрирован, и объяснить процедуру сброса пароля.
Какая бы ни была платформа веб-разработки, вероятно, имеет пакет, который обрабатывает письма с подтверждением.
Обратите внимание, что вам нужно подумать о случае, когда у пользователя был адрес электронной почты и он использовался для регистрации на вашем сайте, затем он исчез без изменения адреса и прекратил использовать адрес, а другой пользователь теперь имеет адрес и хочет зарегистрироваться. Здесь нет простого ответа.
ДОБАВЛЕНО : Вы добавляете, что вам не нужно электронное письмо с подтверждением, чтобы регистрация сразу началась. Это требование противоречит уникальным адресам электронной почты, потому что вы не знаете, что адрес электронной почты, предоставленный пользователем, является законным, пока он не будет подтвержден, и нет никакого смысла в обеспечении уникальности выбранной пользователем строки, которая случайно отформатирована как адрес электронной почты (если вам нужно уникальное имя пользователя, его не нужно форматировать как адрес электронной почты).
Если вы хотите сохранить мгновенную регистрацию, вам придется обрабатывать адреса электронной почты только как ненадежное текстовое поле, пока не будет подтверждено. Это означает, что каждое действие, требующее, чтобы ваш сайт отправлял почту, должно быть взорвано, если пользователь не подтвердил свой адрес электронной почты. Процесс подтверждения остается почти таким же, но теперь, если адрес является дубликатом, пользователю необходимо либо дать возможность объединить две учетные записи (что звучит сложно), либо сказать, что он должен закрыть одну из двух учетных записей или измените адрес электронной почты, связанный с одной из двух учетных записей.