• Модуль: mail
  • Путь к файлу: ~/bitrix/modules/mail/classes/mysql/mail.php
  • Класс: CMailbox
  • Вызов: CMailbox::CleanUp
static function CleanUp()
{
	$connection = BitrixMainApplication::getConnection();
	$helper = $connection->getSqlHelper();
	$days = COption::GetOptionInt("mail", "time_keep_log", B_MAIL_KEEP_LOG);

	$strSql = "DELETE FROM b_mail_log WHERE DATE_INSERT < " . $helper->addDaysToDateTime(-intval($days));
	$connection->query($strSql);

	$mt = microtime(true);
	$dbr = $connection->query("
		SELECT MS.ID
		FROM
			b_mail_message MS
			INNER JOIN b_mail_mailbox MB ON MS.MAILBOX_ID = MB.ID
		WHERE
			MB.MAX_KEEP_DAYS > 0
			AND MS.DATE_INSERT < ".$helper->addDaysToDateTime('-MB.MAX_KEEP_DAYS')."
	");
	while ($ar = $dbr->fetch())
	{
		CMailMessage::Delete($ar["ID"]);
		if (microtime(true) - $mt > 10 * 1000)
			break;
	}

	return "CMailbox::CleanUp();";
}