Как сделать email подтверждение при регистрации на сайте?

Для реализации email подтверждения при регистрации на сайте, использующем 1C-Bitrix, следуйте следующим шагам:

Шаг 1: Создание события
1. В административной панели Bitrix, перейдите в раздел "Сервисы" - "Почтовые сервисы".
2. Создайте новое событие, назовите его "USER_CONFIRMATION".
3. В поле "Почтовый шаблон" выберите уже созданный или создайте новый шаблон для письма с подтверждением.

Шаг 2: Изменение компонента регистрации
1. Откройте файл /bitrix/components/bitrix/main.register/component.php.
2. Найдите функцию RegisterUser() и ее вызов в коде.
3. Добавьте в эту функцию код для отправки письма с подтверждением:

   $eventFields = array(
       "EMAIL" => $arFields["EMAIL"],
       "USER_ID" => $newUserID, // ID только что зарегистрированного пользователя
       "CONFIRM_CODE" => $confirmCode // Код подтверждения
   );
   CEvent::Send("USER_CONFIRMATION", "s1", $eventFields);

Здесь "USER_CONFIRMATION" - название созданного события, "s1" - сайт на котором используется событие.

Шаг 3: Обработка ссылки подтверждения
1. Создайте новую страницу на сайте, например, /confirm.php.
2. В файле /confirm.php добавьте следующий код для обработки GET-параметров из ссылки подтверждения:

   if (isset($_GET["confirm_code"]) && isset($_GET["user_id"])) {
       $userID = intval($_GET["user_id"]);
       $confirmCode = $_GET["confirm_code"];
   
       // Проверяем код подтверждения и пользователя
       if ($userID > 0 && CUser::ConfirmUser($userID, $confirmCode)) {
           // Пользователь успешно подтвержден
           echo "Ваш аккаунт успешно подтвержден!";
       } else {
           // Ошибка подтверждения
           echo "Ошибка подтверждения аккаунта!";
       }
   } else {
       // Некорректные параметры подтверждения
       echo "Некорректные параметры подтверждения!";
   }

Шаг 4: Изменение шаблона письма
1. Откройте шаблон, который был указан в настройках события "USER_CONFIRMATION".
2. В шаблоне можно использовать макросы для вставки информации о пользователе и ссылки подтверждения:

   Здравствуйте #EMAIL#,

   Для завершения регистрации на сайте вам необходимо подтвердить свой e-mail.

   Для подтверждения перейдите <a href="http://example.com/confirm.php?user_id=#USER_ID#&confirm_code=#CONFIRM_CODE#">по этой ссылке</a>.

Здесь #EMAIL# - email пользователя, #USER_ID# и #CONFIRM_CODE# - GET-параметры для ссылки подтверждения.

Теперь, при регистрации новых пользователей, будет отправляться письмо с ссылкой для подтверждения email. Пользователи смогут подтвердить свой аккаунт, перейдя по этой ссылке. В файле /confirm.php происходит проверка кода подтверждения и пользователя, и в соответствии с результатом выводится соответствующее сообщение.