Диагностика проблемы с отправкой почты в Битрикс: статус SUCCESS_EXEC = F
Возникла проблема с отправкой почты через функцию mail() в Битрикс. В таблице событий b_event письмам присваивается статус SUCCESS_EXEC = F (неуспешное выполнение). Важно отметить, что настройки ядра Битрикс не изменялись. Проблема проявилась после добавления второго сайта в виде небольшого интернет-магазина, хотя и не сразу после этого.
План диагностики проблемы
Для выявления и устранения причины сбоя рекомендуем выполнить следующие шаги:
- Проверка конфигурации почты на новом сайте
- Убедитесь, что в настройках модуля "Почта" (Настройки > Настройки продукта > Настройки модулей > Почта) для добавленного сайта корректно указаны параметры отправки (SMTP-сервер, логин, пароль), особенно если используется отдельный от основного сайта почтовый сервис.
- Проверьте, не переопределены ли настройки почты в публичной части второго сайта (например, в
/.settings.phpили/bitrix/php_interface/init.php).
- Анализ логов ошибок
Логи ошибок Битрикс и веб-сервера - основной источник информации:
- Логи Битрикс: Находятся в папке
/bitrix/modules/<имя_модуля>/logs/. Особое внимание уделите модулюmainиsubscribe. Также проверьте общий журнал событий в административной части: Настройки > Инструменты > Журнал событий (можно отфильтровать по типу "Ошибка PHP"). - Логи веб-сервера:
- Для Apache: обычно
/var/log/apache2/error.logили/var/log/httpd/error_log. - Для Nginx + PHP-FPM: логи PHP-FPM (путь настраивается в конфиге
www.conf, часто/var/log/php-fpm/error.logили/var/log/php7.x-fpm.log) и логи Nginx (/var/log/nginx/error.log).
- Для Apache: обычно
- Логи почтового сервера (SMTP): Если используется внешний SMTP-сервер (например, smtp.yandex.ru, smtp.gmail.com), проверьте логи на стороне этого сервера или включите расширенное логирование в настройках модуля почты Битрикс.
- Логи Битрикс: Находятся в папке
- Тестовая отправка письма
Воспользуйтесь стандартным инструментом проверки: Настройки > Настройки продукта > Настройки модулей > Почта > вкладка "Проверка отправки почты". Это поможет изолировать проблему: возникает ли она при любой отправке или только в контексте определенного сайта или события.
- Проверка прав доступа и лимитов
- Убедитесь, что скрипты имеют право на выполнение функции
mail()(не запрещено настройкамиphp.iniилиdisable_functions). - Проверьте, не исчерпаны ли лимиты на отправку писем у хостинг-провайдера или почтового сервиса.
- Убедитесь, что скрипты имеют право на выполнение функции
Рекомендуем начать диагностику с анализа логов ошибок PHP и веб-сервера за период появления первых проблем. Часто причина кроется в нехватке памяти, таймауте соединения с SMTP-сервером или неверных учетных данных для нового сайта.