• Модуль: mail
  • Путь к файлу: ~/bitrix/modules/mail/lib/imapcommands/syncinternalmanager.php
  • Класс: BitrixMailImapCommandsSyncInternalManager
  • Вызов: SyncInternalManager::initData
protected function initData($folderType = null)
{
	if ($this->isInit)
	{
		return new MainResult();
	}
	$this->isInit = true;
	$result = new MainResult();

	$this->mailbox = $this->repository->getMailbox($this->mailboxUserId);
	if (!$this->mailbox)
	{
		return $result->addError(new MainError(Loc::getMessage('MAIL_CLIENT_MAILBOX_NOT_FOUND'),
			'MAIL_CLIENT_MAILBOX_NOT_FOUND'));
	}

	if ($folderType)
	{
		$folder = $this->getDirPathByType($folderType);
		if (!$folder)
		{
			$errorCode = 'MAIL_CLIENT_' . ($folderType == MailboxDirectoryTable::TYPE_TRASH ? 'TRASH' : 'SPAM') . '_FOLDER_NOT_SELECTED_ERROR';
			return $result->addError(new MainError(
				Loc::getMessage($errorCode),
				$errorCode));
		}
	}
	if (is_null($this->messages))
	{
		$this->messages = $this->repository->getMessages();
	}

	if (empty($this->messages))
	{
		return $result->addError(new MainError(Loc::getMessage('MAIL_CLIENT_MESSAGES_NOT_FOUND'),
			'MAIL_CLIENT_MESSAGES_NOT_FOUND'));
	}
	$this->fillMessagesEmails();

	$folders = [];
	foreach ($this->messages as $index => $message)
	{
		if (in_array($message['ID'], $this->messagesIds, true))
		{
			$folders[$message['DIR_MD5']] = $message['DIR_MD5'];
		}
	}
	if (count($folders) > 1)
	{
		return $result->addError(new MainError(Loc::getMessage('MAIL_CLIENT_MESSAGES_MULTIPLE_FOLDERS'),
			'MAIL_CLIENT_MESSAGES_MULTIPLE_FOLDERS'));
	}
	return $result;
}