- Модуль: mail
- Путь к файлу: ~/bitrix/modules/mail/classes/general/mail.php
- Класс: CAllMailMessage
- Вызов: CAllMailMessage::MarkAsSpam
static function MarkAsSpam($ID, $bIsSPAM = true, $arRow = false)
{
global $DB;
$res = null;
if(!is_array($arRow))
$res = $DB->Query("SELECT SPAM, HEADER, BODY_HTML, BODY, MAILBOX_ID FROM b_mail_message WHERE ID=".intval($ID));
else
$ar = $arRow;
if(is_array($arRow) || $res && ($ar = $res->Fetch()))
{
if (empty($ar['FOR_SPAM_TEST']))
{
$ar['FOR_SPAM_TEST'] = sprintf('%s %s', $ar['HEADER'], $ar['BODY_HTML'] ?: $ar['BODY'] );
}
if($bIsSPAM)
{
if($ar["SPAM"]!="Y")
{
if($ar["SPAM"]=="N")
CMailFilter::DeleteFromSpamBase($ar["FOR_SPAM_TEST"], false);
CMailFilter::MarkAsSpam($ar["FOR_SPAM_TEST"], true);
CMailMessage::Update($ID, Array("SPAM"=>"Y"));
CMailLog::AddMessage(
Array(
"MAILBOX_ID"=>$ar["MAILBOX_ID"],
"MESSAGE_ID"=>$ID,
"LOG_TYPE"=>"SPAM"
)
);
}
}
else
{
if($ar["SPAM"]!="N")
{
if($ar["SPAM"]=="Y")
CMailFilter::DeleteFromSpamBase($ar["FOR_SPAM_TEST"], true);
CMailFilter::MarkAsSpam($ar["FOR_SPAM_TEST"], false);
CMailMessage::Update($ID, Array("SPAM"=>"N"));
CMailLog::AddMessage(
Array(
"MAILBOX_ID"=>$ar["MAILBOX_ID"],
"MESSAGE_ID"=>$ID,
"LOG_TYPE"=>"NOTSPAM"
)
);
}
}
$DB->Query("UPDATE b_mail_message SET SPAM_LAST_RESULT='N' WHERE ID=".intval($ID));
}
}