• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/lib/integration/main/eventhandler.php
  • Класс: BitrixIntranetIntegrationMainEventHandler
  • Вызов: EventHandler::onSenderSmtpLimitDecrease
static function onSenderSmtpLimitDecrease(Event $event) : EventResult
{
	if (!Loader::includeModule('im') || !$email = $event->getParameter('EMAIL'))
	{
		return new EventResult(EventResult::SUCCESS);
	}
	$senderEntity = InternalSenderTable::getList(
		[
			'select' => ['EMAIL','USER_ID'],
			'filter' => ['=EMAIL' => $email],
		]
	);

	$senders = [];
	while ($sender = $senderEntity->fetch())
	{
		 $senders[$sender['EMAIL']][] = $sender['USER_ID'];
	}

	foreach ($senders as $userIds)
	{
		foreach ($userIds as $userId)
		{
			$messageFields = [
				"TO_USER_ID" => $userId,
				"FROM_USER_ID" => 0,
				"NOTIFY_TYPE" => IM_NOTIFY_SYSTEM,
				"NOTIFY_MODULE" => "im",
				"NOTIFY_TAG" => "IM_CONFIG_NOTICE",
				"NOTIFY_MESSAGE" => Loc::getMessage('MAIN_MAIL_CALLBACK_LIMIT_NOTIFICATION'),
			];
			CIMNotify::Add($messageFields);
		}
	}
	return new EventResult(EventResult::SUCCESS);
}