Главная » Администрирование Битрикс » Почта » Почему не отправляются письма из Битрикс: чек-лист

Почему не отправляются письма из Битрикс: чек-лист

Схема отправки писем в Битрикс: событие ставит письмо в очередь, агент передаёт его почтовому серверу

Форму отправили — письмо не пришло. Заказ оформили — уведомление не дошло. Причём вчера всё работало. Ситуация распространённая, и проблема может быть на любом из четырёх уровней: шаблон, событие, очередь или сам почтовый сервер.

Разберём диагностику по шагам — от простого к сложному, чтобы не начинать сразу с настроек DNS, когда дело в отключённом агенте.

Как устроена отправка

Понимание цепочки сразу сужает область поиска:

  1. Происходит событие — регистрация, заказ, отправка формы.
  2. Вызывается почтовое событие с набором полей.
  3. Подбирается почтовый шаблон, привязанный к этому событию.
  4. Письмо формируется и ставится в очередь.
  5. Агент забирает письма из очереди и передаёт их серверу.
  6. Почтовый сервер доставляет письмо получателю.

Ключевой момент — четвёртый и пятый шаги. Письмо не отправляется сразу: оно попадает в очередь и уходит позже. Если агенты не работают, очередь просто копится.

Шаг 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-записей домена, из-за чего письма уходят, но не доходят.

    Нужна помощь с Битрикс?

    Исправим ошибку, доработаем сайт, ускорим Битрикс или поможем разобраться с проблемой.

    Услуги
    База знаний