$error = GetMessage('INTR_MAIL_INP_LINK_BAD'); } break; case 'login': break; case 'password': break; } } return $value; } $arResult['STEP'] = isset($_REQUEST['STEP']) ? $_REQUEST['STEP'] : 'choose'; if (!in_array($arResult['STEP'], array('choose', 'check', 'setup', 'confirm', 'remove'))) { $arResult['STEP'] = 'choose'; } $acc = CMailbox::GetList(array('TIMESTAMP_X' => 'DESC'), array('LID' => SITE_ID, 'ACTIVE' => 'Y', 'SERVER_TYPE' => 'imap', 'USER_ID' => $USER->GetID()))->Fetch(); if (empty($acc)) { if ($arResult['STEP'] == 'confirm' && isset($_REQUEST['ACT']) && $_REQUEST['ACT'] == 'remove') { } else { if ($arResult['STEP'] == 'setup' && !empty($_REQUEST['SERVICE']) && array_key_exists($_REQUEST['SERVICE'], $arParams['SERVICES'])) { $arResult['SERVICE'] = $_REQUEST['SERVICE']; } else { if (in_array($arResult['STEP'], array('choose', 'setup')) && count($arParams['SERVICES']) == 1) { $arResult['STEP'] = 'setup'; $arResult['SERVICE'] = key($arParams['SERVICES']); } else { $arResult['STEP'] = 'choose'; } } } } else {
define('NO_KEEP_STATISTIC', 'Y'); define('NO_AGENT_STATISTIC', 'Y'); define('NO_AGENT_CHECK', true); define('DisableEventsCheck', true); define('NOT_CHECK_PERMISSIONS', true); define('BX_SECURITY_SESSION_READONLY', true); require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php'; if (!is_object($USER) || !$USER->IsAuthorized()) { return; } $userId = $USER->GetID(); session_write_close(); CModule::IncludeModule('mail'); $siteId = isset($_REQUEST['SITE_ID']) ? $_REQUEST['SITE_ID'] : SITE_ID; $error = false; $dbAcc = CMailbox::GetList(array('TIMESTAMP_X' => 'DESC'), array('LID' => SITE_ID, 'ACTIVE' => 'Y', 'USER_ID' => $USER->GetID())); while (($acc = $dbAcc->fetch()) !== false && !in_array($acc['SERVER_TYPE'], array('imap', 'controller', 'domain', 'crdomain'))) { } if (!empty($acc)) { switch ($acc['SERVER_TYPE']) { case 'imap': $unseen = CMailUtil::CheckImapMailbox($acc['SERVER'], $acc['PORT'], $acc['USE_TLS'], $acc['LOGIN'], $acc['PASSWORD'], $error, 30); break; case 'controller': list($acc['login'], $acc['domain']) = explode('@', $acc['LOGIN'], 2); $crCheckMailbox = CControllerClient::ExecuteEvent('OnMailControllerCheckMailbox', array('DOMAIN' => $acc['domain'], 'NAME' => $acc['login'])); if (isset($crCheckMailbox['result'])) { $unseen = intval($crCheckMailbox['result']); } else { $unseen = -1; $error = empty($crCheckMailbox['error']) ? GetMessage('INTR_MAIL_CONTROLLER_INVALID') : CMail::getErrorMessage($crCheckMailbox['error']);
} $DB->Commit(); break; case "activate": case "deactivate": $arFields = array("ACTIVE" => $_REQUEST['action'] == "activate" ? "Y" : "N"); if (!CMailBox::Update($ID, $arFields)) { if ($e = $APPLICATION->GetException()) { $lAdmin->AddGroupError(GetMessage("SAVE_ERROR") . $ID . ": " . $e->GetString(), $ID); } } break; } } } $rsData = CMailbox::GetList(array($by => $order), $arFilter); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); // установка строки навигации $lAdmin->NavText($rsData->GetNavPrint(GetMessage("MAIL_MBOX_ADM_NAVIGATION"))); $arHeaders = array(); $arHeaders[] = array("id" => "NAME", "content" => GetMessage("MAIL_MBOX_ADM_NAME"), "default" => true, "sort" => "name"); $arHeaders[] = array("id" => "ACTIVE", "content" => GetMessage("MAIL_MBOX_ADM_ACT"), "default" => true, "sort" => "active"); $arHeaders[] = array("id" => "SERVER", "content" => GetMessage("MAIL_MBOX_ADR"), "default" => true, "sort" => "server"); $arHeaders[] = array("id" => "SERVER_TYPE", "content" => GetMessage("MAIL_MBOX_ADM_TYPE"), "default" => true, "sort" => "server_type"); $arHeaders[] = array("id" => "LID", "content" => GetMessage("MAIL_MBOX_ADM_LANG"), "default" => true, "sort" => "lang"); $arHeaders[] = array("id" => "TIMESTAMP_X", "content" => GetMessage("MAIL_MBOX_ADM_DATECH"), "default" => true, "sort" => "timestamp_x"); $arHeaders[] = array("id" => "ID", "content" => "ID", "default" => true, "sort" => "id"); $lAdmin->AddHeaders($arHeaders); // построение списка while ($arRes = $rsData->NavNext(true, "f_")) {
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); }
<form action="mail_check_new_messages.php" method="get"> <table border="0" cellspacing="1"> <tr> <td valign="top" align="left" nowrap> <p> <?php echo GetMessage("MAIL_CHECK_CHECK"); ?> <select name="mailbox_id"> <option value=""><?php echo GetMessage("MAIL_CHECK_CHECK_ALL"); ?> </option> <?php $l = CMailbox::GetList(array('NAME' => 'ASC', 'ID' => 'ASC'), array('ACTIVE' => 'Y', 'USER_ID' => 0)); while ($l->ExtractFields("mb_")) { ?> <option value="<?php echo $mb_ID; ?> "<?php if ($mailbox_id == $mb_ID) { echo " selected"; } ?> ><?php echo $mb_NAME; ?> </option><?php }
</td> </tr> <tr> <td nowrap><?php echo GetMessage("MAIL_FILT_ADM_FILT_MBOX"); ?> :</td> <td nowrap> <select name="find_mailbox_id"> <option value=""><?php echo GetMessage("MAIL_FILT_ADM_FILT_ANY"); ?> </option> <?php ClearVars("mb_"); $l = CMailbox::GetList(array("NAME" => "ASC", "ID" => "ASC"), array("VISIBLE" => "Y")); while ($l->ExtractFields("mb_")) { ?> <option value="<?php echo $mb_ID; ?> "<?php if ($find_mailbox_id == $mb_ID) { echo " selected"; } ?> ><?php echo $mb_NAME; ?> </option><?php }