Методы для добавления Email пользователя в список для рассылок.

Подписка на рассылку

<?php

use Bitrix\Main\Loader;

Loader::includeModule('subscribe'); // Подключаем модуль

//Получаем все рубрики
$rubricsRes = CRubric::GetList([], ['ACTIVE' => 'Y', 'LID' => SITE_ID]);

$rubricsIds = [];

while ($rubric = $rubricsRes->Fetch()) {
    $rubricsIds[] = $rubric['ID'];
}

global $USER;

$subscription = new CSubscription;

$subscription->Add([
    'EMAIL' => $email, //Email пользователя
    'ACTIVE' => 'Y',
    'FORMAT' => 'html',
    'USER_ID' => $USER->IsAuthorized() ? $USER->GetID() : false,
    'RUB_ID' => $rubricsIds,
    'CONFIRMED' => 'Y',
    'SEND_CONFIRM' => 'N',
]);

Проверка, подписан ли указанный Email

<?php

CSubscription::GetByEmail($email)->Fetch();

Изменить один Email на другой

<?php

$current = CSubscription::GetByEmail($email)->Fetch(); //старый

$subscription = new CSubscription;

$subscription->Update($current ['ID'], [
    'EMAIL' => $newEmail, //новый
    'ACTIVE' => 'Y',
    'FORMAT' => 'html',
    'USER_ID' => $USER->IsAuthorized() ? $USER->GetID() : false,
    'RUB_ID' => $rubricsIds,
    'CONFIRMED' => 'Y',
    'SEND_CONFIRM' => 'N',
]);