Одна из самых неприятных ошибок на коммерческом сайте выглядит безобидно: пользователь заполняет форму, видит успешную отправку, а менеджер ничего не получает. В результате сайт внешне работает, но часть заявок теряется.
Главная ошибка при диагностике - сразу менять почтовые настройки. Сначала надо определить, на каком этапе исчезает заявка.
1. Убедитесь, что форма действительно отправилась на сервер
Успешное сообщение может показываться JavaScript-кодом независимо от результата серверной обработки. Поэтому сначала откройте инструменты разработчика браузера и посмотрите запрос формы.
- Уходит ли POST/AJAX-запрос после нажатия кнопки.
- Какой HTTP-статус возвращает сервер.
- Есть ли в ответе PHP-ошибка, текст исключения или неожиданный HTML.
- Не срабатывает ли сообщение об успехе раньше фактического ответа.
2. Проверьте серверный обработчик
Если запрос пришёл, следующий вопрос - выполнился ли код, который должен сохранить результат или создать почтовое событие.
В зависимости от реализации это может быть стандартный компонент формы, собственный обработчик, вызов почтового события или отдельная интеграция. Полезно временно логировать факт входа в обработчик и ключевые данные заявки.
Если на сайте есть CRM, Telegram или другая система, сравните поведение: если заявка появляется там, но письма нет, проблема уже сузилась до почтовой части.
3. Убедитесь, что создаётся нужное почтовое событие
В Битрикс письмо обычно связано с типом почтового события и почтовым шаблоном. Сам факт успешной обработки формы ещё не означает, что событие было создано корректно.
- Проверьте код события.
- Проверьте, что вызывается именно тот тип события, для которого существует шаблон.
- Убедитесь, что передаются переменные, которые использует шаблон.
- Если используются несколько сайтов в одной установке, проверьте привязку к нужному сайту.
4. Проверьте почтовый шаблон и адрес получателя
Типовая проблема - событие создаётся, но шаблон не подходит под него, отключён или собирает адрес получателя из пустого поля.
Отдельно проверьте поле "Кому". Если там используется макрос, например адрес из параметров события, убедитесь, что в реальном событии значение не пустое и имеет корректный формат.
5. Отделите создание письма от его доставки
Даже если Битрикс сформировал письмо, оно может не уйти с сервера или не дойти до почтового ящика. Это уже другой уровень диагностики.
- Проверить, может ли сервер отправлять почту.
- Посмотреть почтовые логи хостинга или сервера.
- Проверить очередь, если используется отложенная отправка.
- Проверить SMTP, если сайт отправляет письма через внешний почтовый сервер.
- Посмотреть папки "Спам" и правила фильтрации у получателя.
Тест через PHP mail() полезен только как один из сигналов. Успешный возврат функции не гарантирует фактическую доставку сообщения в почтовый ящик.
6. Если письма то приходят, то нет
Плавающая ошибка почти всегда требует логирования. Запишите для каждой тестовой отправки время, форму, адрес, идентификатор запроса и результат каждого этапа. Тогда можно сопоставить конкретную заявку с логами сервера и почты.
Особенно важно проверить, нет ли разных обработчиков для десктопной и мобильной формы, разных шаблонов в карточках товаров или нескольких почти одинаковых форм.
Короткий порядок диагностики
- Сделать тестовую заявку с уникальными данными.
- Подтвердить факт запроса формы в браузере.
- Подтвердить выполнение серверного обработчика.
- Подтвердить создание нужного почтового события.
- Проверить шаблон и фактический адрес получателя.
- Проверить отправку на уровне сервера/SMTP.
- Проверить доставку и антиспам на стороне почтового ящика.
Такой порядок экономит время: вместо случайного изменения настроек вы находите первую точку, где цепочка перестаёт подтверждаться.
А если проблема не только в письме?
На коммерческом сайте я бы одновременно проверила, что успешная отправка фиксируется в Метрике именно после реального успеха, а не по клику на кнопку. Иначе вы можете одновременно терять заявки и получать завышенную статистику целей.
Форма показывает "отправлено", но заявки пропадают?
Можно проверить всю цепочку от формы до получателя, CRM и Метрики, а не только почтовый шаблон.