Пробовал отправлять собственные шаблоны писем из кода компонента в CMS 1С Битрикс.
Сразу встретился с возможными проблемами отправки.
Использую функцию CEvent->Send().
Проверка и еще раз проверка
Для начала нужно проверить правильно ли настроено событие и шаблон вашего сообщения в административной панели Битрикс Настройки > Почтовые события.
- Почтовое событие существует и в вашу функцию CEvent->Send() передается верное значение идентификатора типа события.
- Событию назначен хотя бы один почтовый шаблон.
- Шаблон события активен и в обязательных полях стоят правильные значения или шаблоны значений.
На хостинге проблема с функцией mail
Банальная проблема. Делаем тестовый файл, проверяем отправку, если действительно есть проблема, обращаемся к хостеру.
Пример кода:
<?php
$send_to = 'your_email@your_email_domen.ru';
$headers = 'From: sender@youdomen.ru';
if( mail($send_to ,'Тема сообщения',"Проверка функции Mail",$headers) ){
echo 'Mail() работает!';
}else{
echo 'Проблема с функцией Mail()!';
}
?>
Проверка состояния почтового события в БД
Функция 1С Битрикс CEvent->Send() не отправляет сообщение немедленно, а лишь создает почтовое событие в системе которое будет обработано функцией CEvent::CheckEvents(). (подробнее про Почтовую систему 1С Битрикс).
Идем в Настройки-Инструменты-SQL-запрос.
select * from b_event
where event_name like '%your_event_name%' order by date_insert desc
Смотрим в поле SUCCESS_EXEC:
Y - успешно отправлено (передано в функцию mail, обращаемся к хостеру.
N - Не отправлялось (читаем дальше)
F - Функция MAIL вернула ошибку при отправке (обращаемся к хостеру)
Проверяем настройки отправки по cron
Если в предыдущем пункте вы видите SUCCESS_EXEC=N, то возможно в настройках продукта включена отправка сообщений по крону.В файле /bitrix/php_interface/dbconn.php ищем константы:
define('BX_CRONTAB', true);
define('BX_CRONTAB_SUPPORT', true);
Если значение = true, нужно поставить false либо убрать данные константы.Подробнее про данные константы 1С Битрикс можно узнать здесь.
Снова проверяем отправку.
Проверяем кэш
Если статус отправки события по прежнему = N, то в модуле управления структурой идем по пути /bitrix/managed_cache/ и чистим содержимое.
Итог
В моем случае было 2 проблемы:
- Не работала функция mail, решилась обращением в саппорт хостинга.
- Был неправильно настроен шаблон сообщения.
Комментариев нет:
Отправить комментарий