Bitrix Help
Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Главная » API Битрикс » CEvent » CEvent::SendImmediate() в Битрикс — мгновенная отправка писем без очереди

CEvent::SendImmediate() в Битрикс — мгновенная отправка писем без очереди

Обновлено: 2026 • Раздел: CEvent


Метод CEvent::SendImmediate() используется в 1С-Битрикс для немедленной отправки электронного письма. В отличие от CEvent::Send(), который добавляет письмо в очередь и ожидает обработки агентом или cron, данный метод выполняет отправку сразу после вызова. Этот способ особенно полезен в ситуациях, когда пользователь должен получить письмо мгновенно: код подтверждения, одноразовый пароль, уведомление об успешной оплате или сообщение администратору о новой заявке.

Чем отличается CEvent::SendImmediate() от CEvent::Send()

Основное отличие заключается в способе отправки письма.
Метод Принцип работы
CEvent::Send() Добавляет письмо в очередь (таблица b_event), после чего его отправляет агент или cron.
CEvent::SendImmediate() Отправляет письмо сразу без ожидания обработки очереди.
Если требуется максимально быстрое уведомление пользователя, рекомендуется использовать CEvent::SendImmediate().

Синтаксис метода

CEvent::SendImmediate(
    $event,
    $lid,
    $arFields,
    $Duplicate = "Y",
    $message_id = "",
    $files = array(),
    $languageId = ''
);
Параметры полностью совпадают с методом CEvent::Send().

Описание параметров

$event

Код почтового события.
"FEEDBACK"

$lid

Идентификатор сайта.
SITE_ID

$arFields

Массив данных, которые будут доступны в почтовом шаблоне.
$arFields = [
    "NAME" => "Иван",
    "EMAIL" => "ivan@mail.ru",
    "MESSAGE" => "Здравствуйте!"
];

$Duplicate

Определяет поиск шаблонов на других сайтах.
"Y"
или
"N"

$message_id

Позволяет использовать конкретный почтовый шаблон.
15

$files

Массив файлов для прикрепления к письму.

$languageId

Необязательный параметр для выбора языка шаблона.

Минимальный пример

CEvent::SendImmediate(
    "FEEDBACK",
    SITE_ID,
    [
        "NAME" => "Иван",
        "EMAIL" => "ivan@mail.ru"
    ]
);
После выполнения метода письмо будет отправлено сразу.

Отправка письма после формы обратной связи

$arFields = [
    "NAME" => $_POST["NAME"],
    "PHONE" => $_POST["PHONE"],
    "EMAIL" => $_POST["EMAIL"],
    "MESSAGE" => $_POST["MESSAGE"]
];

CEvent::SendImmediate(
    "FEEDBACK",
    SITE_ID,
    $arFields
);
Такой вариант подходит, если пользователь должен получить письмо сразу после отправки формы.

Отправка кода подтверждения

$code = rand(100000, 999999);

CEvent::SendImmediate(
    "SMS_CODE",
    SITE_ID,
    [
        "CODE" => $code,
        "EMAIL" => $email
    ]
);
Часто используется при регистрации пользователей или двухфакторной авторизации.

Отправка уведомления администратору

CEvent::SendImmediate(
    "ADMIN_NOTIFY",
    SITE_ID,
    [
        "NAME" => $name,
        "PHONE" => $phone,
        "EMAIL" => $email
    ]
);
Администратор получит письмо сразу после отправки формы.

Использование определенного шаблона

CEvent::SendImmediate(
    "FEEDBACK",
    SITE_ID,
    $arFields,
    "N",
    25
);

Прикрепление файлов

$fileId = CFile::SaveFile($_FILES["FILE"], "upload");

CEvent::SendImmediate(
    "FEEDBACK",
    SITE_ID,
    $arFields,
    "N",
    "",
    [$fileId]
);

Что возвращает метод

Метод возвращает логическое значение.
true
или
false
Возврат true означает, что попытка отправки письма выполнена успешно. Если метод вернул false, следует проверить настройки почтовой системы и наличие почтового шаблона.

Когда использовать CEvent::SendImmediate()

Когда лучше использовать CEvent::Send()

Если на сайте ежедневно отправляется большое количество писем, лучше использовать CEvent::Send(). Очередь позволяет снизить нагрузку на сервер и избежать задержек при выполнении пользовательских запросов. CEvent::SendImmediate() рекомендуется применять только для действительно важных писем, которые пользователь должен получить без задержек.

Распространенные ошибки

Полезные рекомендации

Заключение

CEvent::SendImmediate() позволяет отправить электронное письмо непосредственно во время выполнения PHP-скрипта, минуя очередь почтовых событий. Метод идеально подходит для отправки кодов подтверждения, уведомлений о важных действиях пользователя и других сообщений, которые должны быть доставлены без задержек. Однако при высокой нагрузке на сайт рекомендуется использовать CEvent::Send(), поскольку очередь почтовых событий обеспечивает более эффективную обработку большого количества писем.
Услуги


База знаний