В файле
/bitrix/modules/main/classes/general/event.php:227 заменить это
$events = GetModuleEvents("main", "OnBeforeEventSend");
while ($event = $events->Fetch())
ExecuteModuleEventEx($event, array(&$arFields, &$db_mail_result_array)); |
вот на это
$events = GetModuleEvents("main", "OnBeforeEventSend");
while ($event = $events->Fetch())
if(ExecuteModuleEventEx($event, array(&$arFields, &$db_mail_result_array)) === false)
return "F"; // Fail |
Такое решение даст возможность через обработчик OnBeforeEventSend запрещать отправку писем определенных почтовых событий при определенных условиях, заданных разработчиком.
В отличие от него событие OnBeforeEventSend работает всегда - и по CEvent::Send() и по CEvent::SendImmediate().
Но хорошо бы если б это можно было бы сделать просто с помощью return FALSE;
тогда был создан тикет №267185 в техподдержке
Например, если обработчиком возвращается один символ из набора
Мне тоже надо отсылать письма в определенное время.
Есть еще интересное событие OnBeforeMailSend, оно следующим шагом идет и там тоже можно отменить отправку.
Как можно реализовать запрет отправки автоматических писем (уведомлений) определенной группе пользователей.
Не нашел решения.
Благодарю за всяческую помощь.