- Модуль: mail
- Путь к файлу: ~/bitrix/modules/mail/lib/mailbox.php
- Класс: BitrixMailMailboxTable
- Вызов: MailboxTable::getTheOwnersMailboxes
static function getTheOwnersMailboxes($userId = null): array
{
global $USER;
if (!($userId > 0 || (is_object($USER) && $USER->isAuthorized())))
{
return [];
}
if (!($userId > 0))
{
$userId = $USER->getId();
}
static $mailboxes = [];
static $userMailboxes = [];
if (!array_key_exists($userId, $userMailboxes))
{
$userMailboxes[$userId] = [];
(new CAccess)->updateCodes(['USER_ID' => $userId]);
$res = static::getList([
'filter' => [
[
'=USER_ID' => $userId,
],
'=ACTIVE' => 'Y',
'=SERVER_TYPE' => 'imap',
],
'order' => [
'ID' => 'DESC',
],
]);
while ($mailbox = $res->fetch())
{
static::normalizeEmail($mailbox);
$mailboxes[$mailbox['ID']] = $mailbox;
$userMailboxes[$userId][] = $mailbox['ID'];
}
}
$result = [];
foreach ($userMailboxes[$userId] as $mailboxId)
{
$result[$mailboxId] = $mailboxes[$mailboxId];
}
return $result;
}