/*
##############################################
# Bitrix: SiteManager #
# Copyright (c) 2002-2004 Bitrix #
# http://www.bitrixsoft.com #
# mailto:admin@bitrixsoft.com #
##############################################
*/
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/mail/prolog.php");
$MOD_RIGHT = $APPLICATION->GetGroupRight("mail");
if($MOD_RIGHT<"R") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
IncludeModuleLangFile(__FILE__);
Bitrix\Main\Loader::includeModule('mail');
$err_mess = "File: ".__FILE__."
Line: ";
$APPLICATION->SetTitle(GetMessage("MAIL_MSG_ADM_TITLE"));
$sTableID = "t_message_admin";
$oSort = new CAdminSorting($sTableID, "field_date", "desc");
$lAdmin = new CAdminList($sTableID, $oSort);
$filter = new CAdminFilter(
$sTableID."_filter_id",
array(
"ID",
GetMessage("MAIL_MSG_ADM_MAILBOX"),
GetMessage("MAIL_MSG_ADM_MARKEDSPAM"),
GetMessage("MAIL_MSG_ADM_FILTER_READ"),
GetMessage("MAIL_MSG_ADM_FILTER_FROM"),
GetMessage("MAIL_MSG_ADM_FILTER_TO"),
GetMessage("MAIL_MSG_ADM_FILTER_SUBJECT"),
GetMessage("MAIL_MSG_ADM_FILTER_TEXT"),
)
);
$arFilterFields = Array(
"find_all",
"find_id",
"find_mailbox_id",
"find_spam",
"find_new",
"find_from",
"find_to",
"find_subject",
"find_body",
);
$lAdmin->InitFilter($arFilterFields);
$arFilter = Array(
'ID' => $find_id,
'MAILBOX_ID' => $find_mailbox_id,
'FIELD_FROM' => $find_from,
'SUBJECT' => $find_subject,
'BODY' => $find_body,
'NEW_MESSAGE' => $find_new,
'SPAM' => $find_spam
);
if (!empty($find_to))
{
$arFilter[] = array(
'LOGIC' => 'OR',
'FIELD_TO' => $find_to,
'FIELD_CC' => $find_to,
'FIELD_BCC' => $find_to,
);
}
if (!empty($find_all))
{
$arFilter[] = array(
'LOGIC' => 'OR',
'HEADER' => $find_all,
'BODY' => $find_all,
);
}
if($MOD_RIGHT=="W" && $arID = $lAdmin->GroupAction())
{
if($_REQUEST['action_target']=='selected')
{
$FilterTmp = Array();
switch($_REQUEST['action'])
{
case "mark_as_spam":
$FilterTmp["!SPAM"]="Y";
break;
case "mark_as_notspam":
$FilterTmp["!SPAM"]="N";
break;
case "mark_as_read":
$FilterTmp["NEW_MESSAGE"]="Y";
break;
case "mark_as_unread":
$FilterTmp["NEW_MESSAGE"]="N";
}
$FilterTmp = $arFilter + $FilterTmp;
$rsData = Bitrix\Mail\MailMessageTable::getList(array(
'select' => array('ID'),
'filter' => array_filter($FilterTmp),
'order' => array(mb_strtoupper($by) => $order),
));
while($arRes = $rsData->fetch())
$arID[] = $arRes['ID'];
}
$filter_id = false;
if(mb_substr($_REQUEST['action'], 0, mb_strlen("refilter_num_")) == "refilter_num_")
{
$filter_id = mb_substr($_REQUEST['action'], mb_strlen("refilter_num_"));
$_REQUEST['action'] = "refilter";
}
foreach($arID as $ID)
{
if($ID == '')
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;
}
}
}
$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', // required
'FIELD_FROM', 'FIELD_REPLY_TO', 'FIELD_CC', 'FIELD_BCC', 'FIELD_DATE', 'DATE_INSERT', 'ATTACHMENTS', 'MSG_ID' // optional
),
'filter' => array_filter($arFilter),
'order' => array(mb_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" => "message_size", "align" => "right");
$arHeaders[] = Array("id"=>"SPAM_RATING", "content"=>GetMessage("MAIL_MSG_ADM_SPAM")."
".GetMessage("MAIL_MSG_ADM_SPAM_R"), "default"=>true, "sort" => "spam_rating");
$arHeaders[] = Array("id"=>"ATTACHMENTS", "content"=>GetMessage("MAIL_MSG_ADM_SPAM_ATTCH"), "default"=>true, "sort" => "attachments");
$arHeaders[] = Array("id"=>"ID", "content"=>"ID", "sort" => "id");
$arHeaders[] = Array("id"=>"MSG_ID", "content"=>"Message-ID");
$lAdmin->AddHeaders($arHeaders);
while($arRes = $messageList->fetch())
{
$row =& $lAdmin->AddRow($arRes['ID'], $arRes);
$str = "";
if($arRes['SPAM']=="Y"):
if($arRes['NEW_MESSAGE']!="Y"):
$str .= '