Для реализации 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 происходит проверка кода подтверждения и пользователя, и в соответствии с результатом выводится соответствующее сообщение.