Приветствую читателей thisis-blog.ru!
В сегодняшней статье хочу рассказать об основных проблемах с почтой в CMS 1с-Битрикс.
Порой до адресата не доходят письма и нужно понять, а отправляются ли они вообще? А может они были отправлены, но возникли, какие-то другие ошибки. Так что же делать в таких ситуациях?
Содержание
- Проверить отправляются ли письма
- Список отправленных писем
- Не приходят на почту уведомления о заполнении веб-форм
- Если не работает отправка почты на Битриксе
- 1. Проверить отправку почту сервера (работу функции mail()):
- 2. Проверить список отправленных сообщений:
Проверить отправляются ли письма
Для проверки достаточно на любой страничке написать следующий php код:
Либо использовать для отправки письма функцию bitrix CEvent::Send.
Если письмо не пришло, можно обращаться в тех. поддержку хостера.
Список отправленных писем
В битриксе нет как такого инструмента, который бы показывал сработавшие почтовые шаблоны и соответствующие отправленные письма. Но всё таки существует обходной путь, как просмотреть их.
Для этого нужно зайти в Админку Битрикс, далее Настройки -> Инструменты -> SQL-запрос. Ввести следующий sql код:
Вместо %form% нужно указать конкретный тип почтового события например так, чтобы посмотреть отправленные письма о новых заказах:
Либо можете вообще убрать вторую строку. В результате получите таблицу всех сработавших событий. Нас интересует колонка SUCCESS_EXEC.
‘Y’ — означает успешная отправка;
‘N’ или 0 — письмо не отправлено;
‘F’ — ошибка
Если найденные записи имеют значение ‘Y’ — это означает, что они отправлены и проблем быть не должно.
Но у нас всё плохо, значит обращаемся в тех. поддержку хостинга.
Если ‘N’ или 0- письма по какой-то причине не ушли.
Может помочь такое решение:
перейдите по пути: /bitrix/php_interface/dbconn.php
Закомментируйте или удалите следующие строки:
Попробуйте протестировать снова. Если после этого SUCCESS_EXEC также имеет значение ‘N’, то перейдите в /bitrix/managed_cache/ . Удалите содержимое через модуль управления структурой( не в коем случае не используйте FTP). Если вылезет ошибка, то не хватает доступа. Измените доступ к папкам и повторите снова.
Еще один способ — воспользоваться встроенными методами CMS Битрикс по диагностике.
- Проверка системы — /bitrix/admin/site_checker.php
- Монитор качества — /bitrix/admin/checklist.php
Ошибки, найденные в процессе диагностики, могут являються причиной вашей проблемы.
Возможная ошибка — почтовый сервер не поддерживает формат письма. Попробуйте изменить настройки отправки.
- Убрать BBC
- Убрать дублирование email в заголовке
- Установить Конвертировать 8-битные заголовки
Если ничего не помогло, попробуйте запросить у хостера логи почтового сервера.
Хочу рассмотреть частный случай:
Не приходят на почту уведомления о заполнении веб-форм
Шаги решения проблемы:
- Переходим в админ панель: Настройки -> Настройки продукта ->Настройки модулей -> Веб-формы. Отключаем флажок «использовать упрощенный режим». Переходим к настройкам компонента веб-форм на сайте. Вкладка дополнительно. Должен присутствовать флажок активирующий привязку к почтовому шаблону.
- Переходим: Панель управления -> Настройки -> Настройки продукта -> Почтовые события. Находим почтовый шаблон для веб-формы. Проверяем правильность данных:
- Шаблон должен быть активен;
- Привязан к одному из сайтов(если многосайтовость);
- От кого: #DEFAULT_EMAIL_FROM#;
- Кому: #DEFAULT_EMAIL_FROM#».
Спасибо за внимание, также читайте статью про то, как Добавить поле в почтовый шаблон.
Если не работает отправка почты на Битриксе
1. Проверить отправку почту сервера (работу функции mail()):
Создайте тестовую страницу и пропишите в ней следующий php-код
Если функция mail() отработала и вам пришло тестовое письмо проблема в настройках Битрикса
2. Проверить список отправленных сообщений:
Зайдите в админ. панель и перейдите в список отпавленных сообщений: Настройки/Производительность/Таблицы найти b_event
В появившейся таблице найдите столбец SUCCESS_EXEC, в котором могут быть следующие значения:
Если «Y» -письмо ушло, все в в порядке
Если «N»или «0» — зайдите /bitrix/php_interface/dbconn.php и удалите константы:
Через модуль управления структурой удалите папку /bitrix/managed_cache/.
Если «F» — функция mail() не работает. В этом случае может помочь:
Настройки/Настройки продукта/Настройки модулей/Главный модуль
- Конвертировать 8-битные символы в заголовке письма
- Конвертировать символы новой строки Unix формата в Windows формат при отправке emai
- Удалить скрытую копию (BBC)
Стандартные компоненты Битрикс (да и сторонние тоже) отправляют письма через свои события. То есть при отправке письма с формы обратной связи — это письмо попадает в очередь внутри движка сайта и далее отправляется при следующем просмотре страницы сайта посетителем или роботом (по умолчанию в Битрикс отправка сообщений настроена на хитах), либо по крону (если администратор перенастроил отправку сообщений).
Мы же можем посмотреть все события на отправку писем и их статусы специальным запросом SQL в админке сайта ( Рабочий стол / Настройки / Инструменты / SQL запрос ) :
Источник: