if($_SERVER["REQUEST_METHOD"]=="POST" && $_REQUEST["save_form"]=="Y" && $MOD_RIGHT>="W" && check_bitrix_sessid()) { $dbr = CMailMessage::GetByID($ID); if($dbr_arr = $dbr->Fetch()) { if($_REQUEST["MARK_AS_SPAM"]=="Y") { CMailMessage::MarkAsSpam($ID, true, $dbr_arr); } elseif($_REQUEST["MARK_AS_NOT_SPAM"]=="Y") { CMailMessage::MarkAsSpam($ID, false, $dbr_arr); } elseif(($_REQUEST["MARK_SPAM"]=="Y" || $_REQUEST["MARK_SPAM"]=="N")) { CMailMessage::MarkAsSpam($ID, $_REQUEST["MARK_SPAM"]=="Y", $dbr_arr); } if(strlen($_REQUEST["MANUAL_FILTER"])>0) { CMailFilter::FilterMessage($ID, "M", ($_REQUEST["MANUAL_FILTER"]>0?$_REQUEST["MANUAL_FILTER"]:false)); } if($_REQUEST["DELETE_MESSAGE"]=="Y") { CMailMessage::Delete($ID); $_REQUEST["save"] == "Y"; } } if(strlen($_REQUEST["apply"])>0)
$filter_id = false; if (substr($_REQUEST['action'], 0, strlen("refilter_num_")) == "refilter_num_") { $filter_id = substr($_REQUEST['action'], strlen("refilter_num_")); $_REQUEST['action'] = "refilter"; } foreach ($arID as $ID) { if (strlen($ID) <= 0) { continue; } $ID = intval($ID); switch ($_REQUEST['action']) { case "mark_as_spam": CMailMessage::MarkAsSpam($ID, true); break; case "mark_as_notspam": CMailMessage::MarkAsSpam($ID, false); break; case "mark_as_read": 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; } }
function UnMarkMessageAsSpam($messageID, $checkRights = "Y") { $err_mess = CAllTicket::err_mess() . "<br>Function: UnMarkMessageAsSpam<br>Line: "; global $DB, $USER; $messageID = intval($messageID); if ($messageID <= 0) { return; } $bAdmin = "N"; $bSupportTeam = "N"; if ($checkRights == "Y") { $bAdmin = CTicket::IsAdmin() ? "Y" : "N"; $bSupportTeam = CTicket::IsSupportTeam() ? "Y" : "N"; } else { $bAdmin = "Y"; $bSupportTeam = "Y"; } if (($bAdmin == "Y" || $bSupportTeam == "Y") && CModule::IncludeModule("mail")) { $rsMessage = CTicket::GetMessageByID($messageID, $checkRights); if ($arMessage = $rsMessage->Fetch()) { $arFields = array("IS_SPAM" => "null"); $DB->Update("b_ticket_message", $arFields, "WHERE ID=" . $messageID, $err_mess . __LINE__); $email_id = intval($arMessage["EXTERNAL_ID"]); $header = $arMessage["EXTERNAL_FIELD_1"]; $rsEmail = CMailMessage::GetByID($email_id); if ($rsEmail->Fetch()) { CMailMessage::MarkAsSpam($email_id, false); } else { CmailFilter::DeleteFromSpamBase($header . " \n\r " . $arMessage["MESSAGE"], true); CmailFilter::MarkAsSpam($header . " \n\r " . $arMessage["MESSAGE"], false); } } } }
function ForumSpamMessage($message, &$strErrorMessage, &$strOKMessage, $arAddParams = array()) { global $USER; $arError = array(); $arOK = array(); $arAddParams = !is_array($arAddParams) ? array($arAddParams) : $arAddParams; $arAddParams["PERMISSION"] = !empty($arAddParams["PERMISSION"]) ? $arAddParams["PERMISSION"] : false; $message = ForumDataToArray($message); if (empty($message)) { $arError[] = GetMessage("SPAM_NO_MESS"); } else { foreach ($message as $MID) { if (!CForumMessage::CanUserDeleteMessage($MID, $USER->GetUserGroupArray(), $USER->GetID(), $arAddParams["PERMISSION"])) { $arError[] = GetMessage("SPAM_NO_PERMS") . "(MID=" . $MID . ")"; } else { $arMessage = CForumMessage::GetByID($MID, array("FILTER" => "N")); if (CModule::IncludeModule("mail")) { CMailMessage::MarkAsSpam($arMessage["XML_ID"], "Y"); } if (CForumMessage::Delete($MID)) { $arOK[] = GetMessage("SPAM_OK") . "(MID=" . $MID . ")"; CForumEventLog::Log("message", "spam", $MID, print_r($arMessage, true)); } else { $arError[] = GetMessage("SPAM_NO") . "(MID=" . $MID . ")"; } } } } if (!empty($arError)) { $strErrorMessage .= implode(".\n", $arError) . ".\n"; } if (!empty($arOK)) { $strOKMessage .= implode(".\n", $arOK) . ".\n"; } return empty($arError) ? true : false; }