function Delete($ID) { global $DB; $ID = IntVal($ID); $db_msg = CMailMessage::GetList(Array(), 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_log = CMailLog::GetList(Array(), Array("MAILBOX_ID"=>$ID)); while($log = $db_log->Fetch()) { if(!CMailLog::Delete($log["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_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); }
function Delete($ID) { global $DB; $ID = IntVal($ID); $db_msg = CMailMessage::GetList(array(), 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_log = CMailLog::GetList(array(), array("MAILBOX_ID" => $ID)); while ($log = $db_log->Fetch()) { if (!CMailLog::Delete($log["ID"])) { return false; } } CAgent::RemoveAgent("CMailbox::CheckMailAgent(" . $ID . ");", "mail"); $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); }
if ($_REQUEST['action_target'] == 'selected') { $rsData = CMailFilter::GetList(array($by => $order), $arFilter); while ($arRes = $rsData->Fetch()) { $arID[] = $arRes['ID']; } } foreach ($arID as $ID) { if (strlen($ID) <= 0) { continue; } $ID = IntVal($ID); switch ($_REQUEST['action']) { case "delete": @set_time_limit(0); $DB->StartTransaction(); if (!CMailFilter::Delete($ID)) { $DB->Rollback(); $e = $APPLICATION->GetException(); $lAdmin->AddGroupError($e->GetString(), $ID); } $DB->Commit(); break; case "activate": case "deactivate": $arFields = array("ACTIVE" => $_REQUEST['action'] == "activate" ? "Y" : "N"); if (!CMailFilter::Update($ID, $arFields)) { if ($e = $APPLICATION->GetException()) { $lAdmin->AddGroupError(GetMessage("MAIL_SAVE_ERROR") . " #" . $ID . ": " . $e->GetString(), $ID); } } break;
$GLOBALS['APPLICATION']->ResetException(); } } else { if (!CMailFilter::Update($mailFilterID, $arMailFilter)) { $ex = $GLOBALS['APPLICATION']->GetException(); $errorMsg = $ex->GetString(); $GLOBALS['APPLICATION']->ResetException(); } } if ($errorMsg === '' && $mailFilterID > 0) { // Deleting other crm related filters (only one active crm filter is allowed) $rsMailFilter = CMailFilter::GetList(array(), array('ACTION_TYPE' => 'crm')); while ($arMailFilter = $rsMailFilter->Fetch()) { $curMailFilterID = intval($arMailFilter['ID']); if ($curMailFilterID !== $mailFilterID) { CMailFilter::Delete($curMailFilterID); } } } } } } $arSettings['EMAIL'] = $email; $arSettings['EMAIL_LOCAL_PART'] = $emailLocalPart; $arSettings['MAILBOX_ID'] = $mailBoxID; if (strlen($errorMsg) > 0) { ShowError($errorMsg); } else { COption::SetOptionString('crm', 'mail_box', $mailBoxID); COption::SetOptionString('crm', 'mail_filter', $mailFilterID); COption::SetOptionString('crm', 'mail', strtolower($email));