• Модуль: 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;
}