• Модуль: 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) . ');'
	);
}