Письма в 1С-Битрикс не отправляются в момент вызова
CEvent::Send или Event::send — они
становятся в очередь, которую разбирает отдельный механизм. Разберём,
как устроена эта очередь, что делать, если письма копятся
и не уходят, и как настроить отправку под реальную нагрузку проекта.
Как письмо попадает в очередь
Вызов почтового события создаёт запись в таблице очереди писем
(b_event и связанные таблицы) со статусом "не
отправлено" — сама отправка происходит позже, при следующем заходе
агента, отвечающего за разбор очереди. Между постановкой в очередь
и реальной отправкой обычно проходит несколько секунд при активном
трафике на сайт, но задержка может вырасти, если агенты запускаются
редко.
Просмотр состояния очереди
Раздел Сервисы → Почтовые события → Просмотр событий показывает список писем в очереди с их статусом — отправлено, ожидает отправки, ошибка. Регулярная проверка этого раздела, особенно после массовой рассылки или интеграции, показывающей признаки сбоя, — быстрый способ понять, накапливаются письма или уходят штатно.
Нужна помощь с Битрикс?
Что запускает разбор очереди
Как и большинство агентов Битрикса, обработчик очереди писем
запускается либо при заходе посетителя на сайт (штатный механизм
агентов "по визитам"), либо по системному cron, если он настроен
явно через agents.php. На сайтах с низкой посещаемостью
и без настроенного cron письма могут накапливаться в очереди
надолго просто потому, что нет события, которое бы запустило
их обработку.
Настройка cron для гарантированной отправки
# crontab -e
*/1 * * * * curl -s "https://example.ru/bitrix/admin/agents.php?login=admin&admin=Y" > /dev/null
Настройка регулярного системного cron-задания на файл
agents.php — правильный способ гарантировать разбор
очереди писем (и остальных агентов) независимо от реального трафика
посетителей, особенно критично для проектов с редким визитами,
но с важными транзакционными письмами вроде подтверждения заказа.
Почему письма "зависают" в очереди
Частая причина накопления писем без отправки — недоступность или неверные настройки SMTP-сервера в настройках главного модуля. Если письма копятся именно с момента конкретного изменения (смена хостинга, смена почтового сервиса), первым делом стоит проверить настройки соединения с почтовым сервером — Настройки → Настройки продукта → Настройки почты.
Массовая отправка и лимиты почтового провайдера
При массовой рассылке (например, уведомление всей базе клиентов) стоит учитывать лимиты почтового сервиса или SMTP-провайдера на число писем в единицу времени — превышение лимита приводит к блокировке или задержке отправки на стороне провайдера, что выглядит как проблема на стороне Битрикса, хотя причина находится во внешнем сервисе.
Программная проверка очереди
<?php
use Bitrix\Main\Mail\Internal\EventTable;
$pending = EventTable::getList([
'select' => ['ID'],
'filter' => ['SUCCESS_EXECUTE' => 'N'],
])->getSelectedRowsCount();
if ($pending > 100) {
AddMessage2Log("Очередь писем: {$pending} неотправленных", 'mail.monitor');
}
Мониторинг размера очереди программно, например через агент, проверяющий число неотправленных писем раз в час, позволяет заметить рост очереди раньше, чем это заметит сам пользователь по неполученному письму подтверждения заказа.
Приоритизация критичных писем
Для проектов, где одни письма критичнее других (подтверждение оплаты важнее маркетинговой рассылки), при большом объёме исходящей почты стоит рассмотреть разделение отправки через разные почтовые сервисы или очереди — чтобы массовая рассылка не задерживала транзакционные письма, от которых напрямую зависит клиентский опыт.
Частые ошибки
- Нет системного cron, только агенты "по визитам". Письма накапливаются на малопосещаемых страницах и в ночное время.
- Настройки SMTP не проверены после смены хостинга. Письма копятся в очереди без явной ошибки на первый взгляд.
- Массовая рассылка превышает лимиты почтового провайдера. Задержка или блокировка отправки на стороне внешнего сервиса.
- Размер очереди не мониторится программно. Проблема обнаруживается только после жалобы пользователя.
Итог
Письма в 1С-Битрикс проходят через очередь, разбираемую агентом, — для гарантированной и своевременной отправки нужен настроенный системный cron, а не расчёт на визиты посетителей. Накопление писем в очереди почти всегда указывает либо на отсутствие регулярного запуска агентов, либо на проблему с настройками SMTP-соединения или лимитами почтового провайдера.
