- Модуль: mail
- Путь к файлу: ~/bitrix/modules/mail/lib/imapcommands/repository.php
- Класс: BitrixMailImapCommandsRepository
- Вызов: Repository::deleteMailsCompletely
public function deleteMailsCompletely($messagesToDelete, $mailboxUserId)
{
// @TODO: make a log optional
/*$messageToLog = [
'cause' => 'deleteMailsCompletely',
'filter' => 'manual deletion of messages',
'removedMessages'=>$messagesToDelete,
];
AddMessage2Log($messageToLog);*/
$ids = array_map(
function ($mail)
{
return intval($mail['MESSAGE_ID']);
},
$messagesToDelete
);
if (empty($ids))
{
return;
}
$mailFieldsForEvent = [];
foreach ($messagesToDelete as $index => $item)
{
$mailFieldsForEvent[] = [
'HEADER_MD5' => $item['HEADER_MD5'],
'MESSAGE_ID' => $item['MESSAGE_ID'],
'MAILBOX_USER_ID' => $mailboxUserId,
];
}
MailMailMessageUidTable::deleteList(
[
'=MAILBOX_ID' => $this->mailboxId,
'@MESSAGE_ID' => $ids,
],
$mailFieldsForEvent
);
// @TODO: use API
$connection = MainApplication::getInstance()->getConnection();
$connection->query(
'DELETE from ' . MailMailMessageTable::getTableName() .
' WHERE ID IN (' . implode(',', $ids) . ');'
);
}