- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/secretary.php
- Класс: BitrixIntranetSecretary
- Вызов: Secretary::createMailChat
static function createMailChat(array $messageData, int $userId): ?int
{
if (!self::checkAccessForIm() || !self::checkAccessForMail())
{
throw new BitrixMainSystemException('create mail chat: failed to load modules');
}
if (empty($messageData['SUBJECT']))
{
$messageData['SUBJECT'] = Loc::getMessage(
'INTRANET_CONTROL_BUTTON_MAIL_CHAT_EMPTY_SUBJECT',
['#MESSAGE_ID#' => $messageData['ID']]
);
}
$chat = new CIMChat(0);
$chatFields = [
'TITLE' => $messageData['SUBJECT'],
'TYPE' => IM_MESSAGE_CHAT,
'ENTITY_TYPE' => 'MAIL',
'ENTITY_ID' => $messageData['ID'],
'SKIP_ADD_MESSAGE' => 'Y',
'AUTHOR_ID' => $userId,
'USERS' => $messageData['USER_IDS']
];
$chatId = $chat->add($chatFields);
if (
$chatId
&& BitrixMailIntegrationIntranetSecretary::provideAccessToMessage(
$messageData['ID'],
Message::ENTITY_TYPE_IM_CHAT,
$chatId,
$userId
)
)
{
$message = BitrixMailItemMessage::fromArray($messageData);
self::postMailChatWelcomeMessage($message, $chatId, $userId);
return $chatId;
}
return null;
}