• Модуль: mail
  • Путь к файлу: ~/bitrix/modules/mail/lib/helper/mailbox/imap.php
  • Класс: BitrixMailHelperMailboxImap
  • Вызов: Imap::getSyncStatus
public function getSyncStatus()
{
	if (!empty($this->syncParams['currentDir']))
	{
		$currentSyncDir = $this->getDirsHelper()->getDirByPath($this->syncParams['currentDir']);
	}

	if (!empty($currentSyncDir))
	{
		$currentSyncDirMessages = MailMailMessageUidTable::getList([
			'select' => [
				new MainEntityExpressionField('TOTAL', 'COUNT(1)'),
			],
			'filter' => [
				'=MAILBOX_ID'  => $this->mailbox['ID'],
				'=DIR_MD5'     => $currentSyncDir->getDirMd5(),
				'==DELETE_TIME' => 0,
			],
		])->fetch();

		$currentSyncDirMessagesCount = (int) $currentSyncDirMessages['TOTAL'];
		$currentSyncDirMessagesAll = (int) $currentSyncDir->getMessageCount();

		if ($currentSyncDirMessagesAll > 0)
		{
			return ($currentSyncDirMessagesCount / $currentSyncDirMessagesAll);
		}
	}

	return 1;
}