Форму отправили — письмо не пришло. Заказ оформили — уведомление не дошло. Причём вчера всё работало. Ситуация распространённая, и проблема может быть на любом из четырёх уровней: шаблон, событие, очередь или сам почтовый сервер.
Разберём диагностику по шагам — от простого к сложному, чтобы не начинать сразу с настроек DNS, когда дело в отключённом агенте.
Как устроена отправка
Понимание цепочки сразу сужает область поиска:
- Происходит событие — регистрация, заказ, отправка формы.
- Вызывается почтовое событие с набором полей.
- Подбирается почтовый шаблон, привязанный к этому событию.
- Письмо формируется и ставится в очередь.
- Агент забирает письма из очереди и передаёт их серверу.
- Почтовый сервер доставляет письмо получателю.
Ключевой момент — четвёртый и пятый шаги. Письмо не отправляется сразу: оно попадает в очередь и уходит позже. Если агенты не работают, очередь просто копится.
Шаг 1. Проверьте очередь
Самая частая причина. Раздел Сервисы → Почтовые события → Исходящие показывает, что находится в очереди.
| Что видно | Вывод |
|---|---|
| Очередь пуста, писем нет | Письмо не создалось — проблема в событии или шаблоне |
| Письма есть, статус не меняется | Не работает агент отправки |
| Письма помечены отправленными | Сайт своё сделал — проблема на стороне почты |
Это разделение экономит больше всего времени: сразу понятно, где искать дальше.
Нужна помощь с Битрикс?
Шаг 2. Если письма не уходят из очереди
За отправку отвечает агент CEvent::CheckEvents(). Проверьте его
в разделе Настройки → Настройки продукта →
Агенты:
- агент существует и активен;
- дата следующего запуска не застряла в прошлом;
- если включён режим cron — задание действительно добавлено в crontab.
Последний пункт — источник тихих отказов. Константа BX_CRONTAB_SUPPORT
объявлена, а задание в crontab забыли добавить: агенты не выполняются вообще,
и почта молча копится. Про настройку есть отдельный материал —
Агенты в Битрикс,
а сам механизм очереди разобран в статье
CEvent::CheckEvents().
Шаг 3. Если письмо вообще не создаётся
Очередь пуста — значит, письмо не сформировалось. Проверяем по порядку.
Почтовый шаблон существует и активен
Раздел Сервисы → Почтовые события → Шаблоны. Частые проблемы: шаблон деактивирован, привязан к другому сайту или у него не совпадает тип события.
Шаблон привязан к нужному сайту
На многосайтовой конфигурации шаблон, привязанный к одному сайту, не сработает на другом. Это регулярно всплывает после копирования сайта.
Событие действительно вызывается
Если письмо отправляется из своего кода, проверьте, доходит ли выполнение до вызова:
<?php
$result = CEvent::Send('FEEDBACK_FORM', SITE_ID, [
'AUTHOR' => $name,
'EMAIL' => $email,
'TEXT' => $message,
]);
\Bitrix\Main\Diag\Debug::writeToFile(
var_export($result, true),
'CEvent::Send',
'/local/logs/mail.log'
);
Метод разобран в статье CEvent::Send() в Битрикс.
Обработчик не блокирует отправку
Обработчик события OnBeforeEventAdd, вернувший false,
отменяет постановку письма в очередь. Если в проекте есть свои обработчики
почтовых событий — проверьте их.
Шаг 4. Если письма помечены отправленными
Сайт передал письмо серверу, дальше проблема на почтовой стороне.
Проверьте способ отправки
Отправка средствами PHP работает «как получится»: письмо уходит с адреса сервера, без подписи, часто с общего IP хостинга. Правильнее отправлять через SMTP — об этом есть статья Отправка писем через SMTP на Битрикс.
Проверьте, не в спаме ли письмо
Прежде чем искать сложное, загляните в папку «Спам» у получателя. Если письма там — дело в DNS-записях домена, и это разобрано в материале Письма с сайта попадают в спам.
Проверьте лимиты хостинга
Почти все хостинги ограничивают число писем в час или в сутки. При превышении отправка блокируется — иногда молча. Признак: письма уходили нормально, а после массовой рассылки перестали.
Быстрая таблица диагностики
| Симптом | Вероятная причина |
|---|---|
| Не приходят никакие письма | Агент отправки не работает |
| Не приходят письма одного типа | Шаблон отключён или не привязан к событию |
| Приходят с задержкой в часы | Редкий запуск агента или переполненная очередь |
| Приходят в спам | Нет SPF, DKIM, DMARC |
| Доходят до одних, не доходят до других | Репутация IP, политика конкретного провайдера |
| Перестали после переноса сайта | Сменился IP, не настроен SMTP, не переехали DNS-записи |
| Приходят пустыми | В шаблон передаются не те поля |
Профилактика
- Следите за размером очереди. Растущая очередь — первый признак того, что отправка встала.
- Настройте копию важных писем администратору. Так вы заметите проблему раньше клиентов.
- Дублируйте критичные уведомления. Заявка должна сохраняться в базе сайта или в CRM, а не существовать только в виде письма.
- Проверяйте почту после любых работ: переноса, обновления, смены хостинга.
- Раз в месяц отправляйте тестовое письмо на ящики разных провайдеров.
Третий пункт особенно важен для форм обратной связи. Если единственный след заявки — письмо, любая проблема с почтой означает потерянных клиентов, о которых никто не узнает.
Итог
Диагностику проблем с почтой в 1С-Битрикс всегда начинают с очереди исходящих. Она делит все случаи на три понятные группы: письмо не создалось, письмо застряло в очереди или письмо ушло и потерялось уже за пределами сайта.
Самая частая причина — неработающий агент отправки, особенно после перехода на cron без добавления задания в расписание. Вторая по частоте — отсутствие DNS-записей домена, из-за чего письма уходят, но не доходят.
