- Модуль: mail
- Путь к файлу: ~/bitrix/modules/mail/lib/imapcommands/repository.php
- Класс: BitrixMailImapCommandsRepository
- Вызов: Repository::setMessagesSeen
protected function setMessagesSeen($isSeen, $messages, $mailbox)
{
$messagesIds = [];
foreach ($this->messagesIds as $index => $messageId)
{
$messagesIds[$index] = $messageId;
}
if (empty($messagesIds) || empty($messages) || empty($mailbox))
{
return;
}
$mailsData = [];
foreach ($messages as $messageData)
{
$mailsData[] = [
'HEADER_MD5' => $messageData['HEADER_MD5'],
'MAILBOX_USER_ID' => $mailbox['USER_ID'],
'IS_SEEN' => $isSeen,
];
}
$mailboxId = intval($this->mailboxId);
MailMailMessageUidTable::updateList(
[
'=MAILBOX_ID' => $mailboxId,
'@ID' => $messagesIds,
],
[
'IS_SEEN' => $isSeen,
],
$mailsData
);
$dirWithMessagesId = MessageFolder::getDirIdForMessages($mailboxId,$messagesIds);
if($isSeen === 'Y')
{
MessageFolder::decreaseDirCounter($mailboxId, $dirWithMessagesId, count($messagesIds));
}
else
{
MessageFolder::increaseDirCounter($mailboxId, false, $dirWithMessagesId, count($messagesIds));
}
BitrixMailHelper::updateMailboxUnseenCounter($mailboxId);
}