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

CEvent::CheckEvents() в Битрикс — обработка очереди почтовых событий

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


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

Как работает CEvent::CheckEvents()

После вызова CEvent::Send() письмо не отправляется сразу. Вместо этого в таблицу b_event добавляется запись с информацией о почтовом событии. Затем агент Битрикс или cron периодически вызывает обработчик очереди, который отправляет накопившиеся письма. Метод CEvent::CheckEvents() позволяет запустить эту обработку вручную без ожидания следующего запуска агента.

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

CEvent::CheckEvents();
Метод не принимает параметров. Также он ничего не возвращает.

Простейший пример

CEvent::CheckEvents();
После выполнения метода система попытается отправить все письма, находящиеся в очереди.

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

Использование после создания события

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

CEvent::CheckEvents();
В этом случае сначала создается почтовое событие, после чего сразу обрабатывается очередь.

Использование в cron

Если вы полностью отключили выполнение агентов через веб-запросы, можно создать собственный cron-скрипт.
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

CEvent::CheckEvents();
После этого достаточно запускать данный файл по расписанию.

Обработка большого количества писем

Если на сайте ежедневно отправляются сотни или тысячи писем, использование очереди значительно снижает нагрузку на сервер. В этом случае почтовые события сначала записываются в таблицу b_event, а затем постепенно обрабатываются методом CEvent::CheckEvents(). Именно поэтому большинство интернет-магазинов используют не CEvent::SendImmediate(), а стандартную очередь отправки.

Как проверить очередь писем

Все почтовые события находятся в таблице b_event.
SELECT *
FROM b_event
ORDER BY ID DESC;
Наиболее интересны следующие поля:
Поле Описание
ID Идентификатор события.
EVENT_NAME Код почтового события.
DATE_INSERT Дата создания.
SUCCESS_EXEC Статус отправки.

Статусы отправки

Значение Описание
Y Письмо успешно отправлено.
N Ошибка отправки.
F Критическая ошибка.

Почему метод может не отправить письма

CEvent::CheckEvents() или CEvent::SendImmediate()?

Эти методы выполняют разные задачи.
Метод Назначение
CEvent::Send() Добавляет письмо в очередь.
CEvent::CheckEvents() Обрабатывает очередь и выполняет отправку.
CEvent::SendImmediate() Отправляет письмо сразу без использования очереди.
В большинстве проектов разработчики используют связку CEvent::Send() и автоматическую обработку очереди агентами. Вызов CEvent::CheckEvents() вручную требуется только в особых случаях.

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

Заключение

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


База знаний