CMailMessage::Update($ID, array("NEW_MESSAGE" => "N")); break; case "mark_as_unread": CMailMessage::Update($ID, array("NEW_MESSAGE" => "Y")); break; case "delete": CMailMessage::Delete($ID); break; case "refilter": CMailFilter::FilterMessage($ID, "M", $filter_id); break; } } } $nav = new Bitrix\Main\UI\AdminPageNavigation('nav-mail-message'); $messageList = Bitrix\Mail\MailMessageTable::getList(array('select' => array('ID', 'MAILBOX_ID', 'MAILBOX_NAME' => 'MAILBOX.NAME', 'NEW_MESSAGE', 'SUBJECT', 'MESSAGE_SIZE', 'SPAM', 'SPAM_RATING', 'FIELD_FROM', 'FIELD_REPLY_TO', 'FIELD_CC', 'FIELD_BCC', 'FIELD_DATE', 'DATE_INSERT', 'ATTACHMENTS', 'MSG_ID'), 'filter' => array_filter($arFilter), 'order' => array(strtoupper($by) => $order), 'offset' => $nav->getOffset(), 'limit' => $nav->getLimit(), 'count_total' => true)); $nav->setRecordCount($messageList->getCount()); $lAdmin->setNavigation($nav, Bitrix\Main\Localization\Loc::getMessage("MAIL_MSG_ADM_NAVIGATION")); $arHeaders = array(); $arHeaders[] = array("id" => "SUBJECT", "content" => GetMessage("MAIL_MSG_ADM_SUBJECT"), "default" => true, "sort" => "subject"); $arHeaders[] = array("id" => "FIELD_FROM", "content" => GetMessage("MAIL_MSG_ADM_FROM"), "default" => true, "sort" => "field_from"); $arHeaders[] = array("id" => "FIELD_REPLY_TO", "content" => GetMessage("MAIL_MSG_ADM_REPLY_TO"), "sort" => "field_reply_to"); $arHeaders[] = array("id" => "FIELD_CC", "content" => GetMessage("MAIL_MSG_ADM_CC"), "sort" => "field_cc"); $arHeaders[] = array("id" => "FIELD_BCC", "content" => GetMessage("MAIL_MSG_ADM_BCC"), "sort" => "field_bcc"); $arHeaders[] = array("id" => "FIELD_DATE", "content" => GetMessage("MAIL_MSG_ADM_DATE"), "default" => true, "sort" => "field_date"); $arHeaders[] = array("id" => "DATE_INSERT", "content" => GetMessage("MAIL_MSG_ADM_RECEIVED"), "sort" => "date_insert"); $arHeaders[] = array("id" => "MAILBOX_NAME", "content" => GetMessage("MAIL_MSG_ADM_MBOX"), "default" => true, "sort" => "mailbox_name"); $arHeaders[] = array("id" => "MESSAGE_SIZE", "content" => GetMessage("MAIL_MSG_ADM_SIZE"), "default" => true, "sort" => "size", "align" => "right"); $arHeaders[] = array("id" => "SPAM_RATING", "content" => GetMessage("MAIL_MSG_ADM_SPAM") . "<br>" . GetMessage("MAIL_MSG_ADM_SPAM_R"), "default" => true, "sort" => "size"); $arHeaders[] = array("id" => "ATTACHMENTS", "content" => GetMessage("MAIL_MSG_ADM_SPAM_ATTCH"), "default" => true, "sort" => "attachments"); $arHeaders[] = array("id" => "ID", "content" => "ID", "sort" => "id");
function Delete($ID) { global $DB; $ID = IntVal($ID); Bitrix\Main\Loader::includeModule('mail'); $db_msg = Bitrix\Mail\MailMessageTable::getList(array('select' => array('ID'), 'filter' => array('MAILBOX_ID' => $ID))); while ($msg = $db_msg->Fetch()) { if (!CMailMessage::Delete($msg["ID"])) { return false; } } $db_flt = CMailFilter::GetList(array(), array("MAILBOX_ID" => $ID)); while ($flt = $db_flt->Fetch()) { if (!CMailFilter::Delete($flt["ID"])) { return false; } } $db_mbox = CMailbox::GetList(array('ID' => $ID, 'ACTIVE' => 'Y', '!USER_ID' => 0)); if ($mbox = $db_mbox->fetch()) { CUserCounter::Clear($mbox['USER_ID'], 'mail_unseen', $mbox['LID']); CUserOptions::DeleteOption('global', 'last_mail_check_' . $mbox['LID'], false, $mbox['USER_ID']); CUserOptions::DeleteOption('global', 'last_mail_check_success_' . $mbox['LID'], false, $mbox['USER_ID']); } CAgent::RemoveAgent("CMailbox::CheckMailAgent(" . $ID . ");", "mail"); $strSql = "DELETE FROM b_mail_log WHERE MAILBOX_ID=" . $ID; if (!$DB->Query($strSql, true)) { return false; } $strSql = "DELETE FROM b_mail_message_uid WHERE MAILBOX_ID=" . $ID; if (!$DB->Query($strSql, true)) { return false; } CMailbox::SMTPReload(); $strSql = "DELETE FROM b_mail_mailbox WHERE ID=" . $ID; return $DB->Query($strSql, true); }