Ejemplo n.º 1
0
	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);
	}
Ejemplo n.º 2
0
 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;
Ejemplo n.º 4
0
                     $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));