Задать вопрос
TrogWarZ
@TrogWarZ
web developer

Как отправлять почту по событию в Битрикс?

Доброго времени суток!

В наличии Битрикс (Корпоративный портал 14.9.3.).

В настройках уведомлений пользователя везде установлены галочки "отправлять по email" (cl.ly/Xx56)
При новых комментариях или лайках на сайте уведомления появляются, однако почта не приходит. Отправка других email (например, восстановление пароля) работает.

Каким образом добавить обработчик события, который бы отправлял на почту это уведомление? Чтобы обновление ничего не сломало.

Пробовал сделать в init.php примерно такое:
AddEventHandler('im', "OnAddRatingVote", "OnAfterImHandler");
function OnAfterImHandler($arFields) {
    die('Sup');
}

Но увы, код внутри коллбека не выполняется. Нашёл пост на оффоруме без единого ответа от 12 года и только.

Далее, внутри bitrix/modules/im/classes/general/im_mail.php есть метод MailMessageAgent(), внутри которого есть строка:
$arUnsendMessage = CIMMessage::GetUnsendMessage();
Но она всегда возвращает пустое количество сообщений ибо к моменту данного запроса уведомление новое уже отправлено и установлен флаг успеха.

Куда копать далее не представляю ):
  • Вопрос задан
  • 7042 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
Вы используете не тот класс. im это класс мессенджера, а вам нужно отлавливать событие добавления комментария.
Комментарии в корпортале реализованы на базе блогов вроде.

Поэтому в init.php необходимо добавить обработчик.

AddEventHandler('blog', "OnBeforeCommentAdd", "OnAfterImHandler");
function OnAfterImHandler($arFields) {
    die('Sup');
}


Вам сюда: dev.1c-bitrix.ru/api_help/blogs/events/index.php
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы