- Модуль: mail
- Путь к файлу: ~/bitrix/modules/mail/lib/helper/mailbox/imap.php
- Класс: BitrixMailHelperMailboxImap
- Вызов: Imap::removeExistingMessagesFromSynchronizationList
protected function removeExistingMessagesFromSynchronizationList($dirPath, $uidToken, &$messages)
{
$existingMessagesId = [];
$range = array(
reset($messages)['UID'],
end($messages)['UID'],
);
sort($range);
$result = $this->listMessages(array(
'select' => [
'ID'
],
'filter' => array(
'=DIR_MD5' => md5(Emoji::encode($dirPath)),
'=DIR_UIDV' => $uidToken,
'>=MSG_UID' => $range[0],
'<=MSG_UID' => $range[1],
),
), false);
while ($item = $result->fetch())
{
$existingMessagesId[] = $item['ID'];
}
foreach ($messages as $id => $item)
{
$messageUid = $this->buildMessageIdForDataBase($dirPath, $uidToken, $item['UID']);
if (in_array($messageUid, $existingMessagesId))
{
unset($messages[$id]);
continue;
}
//We also remove duplicate messages
$existingMessagesId[] = $messageUid;
}
}