function Update($ID, $arFields) { global $DB; $ID = IntVal($ID); CMailError::ResetErrors(); if(is_set($arFields, "ACTIVE") && $arFields["ACTIVE"]!="Y") $arFields["ACTIVE"]="N"; if(is_set($arFields, "DELETE_MESSAGES") && $arFields["DELETE_MESSAGES"]!="Y") $arFields["DELETE_MESSAGES"]="N"; if(is_set($arFields, "USE_MD5") && $arFields["USE_MD5"]!="Y") $arFields["USE_MD5"]="N"; if(is_set($arFields, "USE_TLS") && $arFields["USE_TLS"]!="Y") $arFields["USE_TLS"]="N"; if (is_set($arFields, "SERVER_TYPE") && !in_array($arFields["SERVER_TYPE"], array("pop3", "smtp", "imap", "controller", "domain", "crdomain"))) $arFields["SERVER_TYPE"] = "pop3"; if(!CMailBox::CheckFields($arFields, $ID)) return false; if(is_set($arFields, "PASSWORD")) $arFields["PASSWORD"]=CMailUtil::Crypt($arFields["PASSWORD"]); $db_mbox = CMailbox::GetList(array('ID' => $ID)); if (($mbox = $db_mbox->fetch()) !== false) { $userChanged = isset($arFields['USER_ID']) && $mbox['USER_ID'] != $arFields['USER_ID']; $siteChanged = isset($arFields['LID']) && $mbox['LID'] != $arFields['LID']; if ($userChanged || $siteChanged) { if ($mbox['ACTIVE'] == 'Y' && $mbox['USER_ID'] != 0) CUserOptions::DeleteOption('global', 'last_mail_check_'.$mbox['LID'], false, $mbox['USER_ID']); $newActive = isset($arFields['ACTIVE']) ? $arFields['ACTIVE'] : $mbox['ACTIVE']; if ($newActive == 'Y') { $newUserId = isset($arFields['USER_ID']) ? $arFields['USER_ID'] : $mbox['USER_ID']; $newSiteId = isset($arFields['LID']) ? $arFields['LID'] : $mbox['LID']; CUserOptions::SetOption('global', 'last_mail_check_'.$newSiteId, 0, false, $newUserId); CUserOptions::DeleteOption('global', 'last_mail_check_success_'.$newSiteId, false, $newUserId); } CUserOptions::DeleteOption('global', 'last_mail_check_success_'.$mbox['LID'], false, $mbox['USER_ID']); } if ($mbox['USER_ID'] != 0 || isset($arFields['USER_ID']) && $arFields['USER_ID'] != 0) { CUserCounter::Clear($mbox['USER_ID'], 'mail_unseen', $mbox['LID']); if ($siteChanged) CUserCounter::Clear($mbox['USER_ID'], 'mail_unseen', $arFields['LID']); if ($userChanged) { CUserCounter::Clear($arFields['USER_ID'], 'mail_unseen', $mbox['LID']); if (isset($arFields['LID']) && $mbox['LID'] != $arFields['LID']) CUserCounter::Clear($arFields['USER_ID'], 'mail_unseen', $arFields['LID']); } } } CAgent::RemoveAgent("CMailbox::CheckMailAgent(".$ID.");", "mail"); if(intval($arFields["PERIOD_CHECK"])>0 && $arFields["SERVER_TYPE"]=="pop3") CAgent::AddAgent("CMailbox::CheckMailAgent(".$ID.");", "mail", "N", intval($arFields["PERIOD_CHECK"])*60); $strUpdate = $DB->PrepareUpdate("b_mail_mailbox", $arFields); $strSql = "UPDATE b_mail_mailbox SET ". $strUpdate." ". "WHERE ID=".$ID; $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); CMailbox::SMTPReload(); return true; }
function Update($ID, $arFields) { global $DB; $ID = IntVal($ID); CMailError::ResetErrors(); if (is_set($arFields, "ACTIVE") && $arFields["ACTIVE"] != "Y") { $arFields["ACTIVE"] = "N"; } if (is_set($arFields, "DELETE_MESSAGES") && $arFields["DELETE_MESSAGES"] != "Y") { $arFields["DELETE_MESSAGES"] = "N"; } if (is_set($arFields, "USE_MD5") && $arFields["USE_MD5"] != "Y") { $arFields["USE_MD5"] = "N"; } if (is_set($arFields, "USE_TLS") && $arFields["USE_TLS"] != "Y") { $arFields["USE_TLS"] = "N"; } if (is_set($arFields, "SERVER_TYPE") && $arFields["SERVER_TYPE"] != "smtp") { $arFields["SERVER_TYPE"] = "pop3"; } if (!CMailBox::CheckFields($arFields, $ID)) { return false; } if (is_set($arFields, "PASSWORD")) { $arFields["PASSWORD"] = CMailUtil::Crypt($arFields["PASSWORD"]); } CAgent::RemoveAgent("CMailbox::CheckMailAgent(" . $ID . ");", "mail"); if (intval($arFields["PERIOD_CHECK"]) > 0 && $arFields["SERVER_TYPE"] == "pop3") { CAgent::AddAgent("CMailbox::CheckMailAgent(" . $ID . ");", "mail", "N", intval($arFields["PERIOD_CHECK"]) * 60); } $strUpdate = $DB->PrepareUpdate("b_mail_mailbox", $arFields); $strSql = "UPDATE b_mail_mailbox SET " . $strUpdate . " " . "WHERE ID=" . $ID; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); CMailbox::SMTPReload(); return true; }
echo bitrix_sessid_post(); ?> </p> </tr> </table></form> <?php if (check_bitrix_sessid()) { $arFilter = array('ACTIVE' => 'Y', 'USER_ID' => 0); if ($mailbox_id > 0) { $arFilter["ID"] = $mailbox_id; } $dbr = CMailBox::GetList(array(), $arFilter); ClearVars("f_"); while ($res = $dbr->ExtractFields("f_")) { CMailError::ResetErrors(); $mb = new CMailbox(); echo '<p><b>' . GetMessage("MAIL_CHECK_TEXT") . '"' . $f_NAME . '":</b></p>'; if ($mb->Connect($res["ID"])) { CAdminMessage::ShowNote(GetMessage("MAIL_CHECK_CNT") . " " . intval($mb->new_mess_count) . " " . GetMessage("MAIL_CHECK_CNT_NEW")); $aContext = array(); if ($mb->new_mess_count > 0) { $aContext[] = array("ICON" => "btn_list", "TEXT" => GetMessage("MAIL_CHECK_VIEW"), "LINK" => "mail_message_admin.php?find_mailbox_id=" . $f_ID . "&lang=" . LANG . "&find_new=Y&set_filter=Y", "TITLE" => GetMessage("MAIL_CHECK_VIEW")); } $aContext[] = array("TEXT" => GetMessage("MAIL_CHECK_LOG"), "LINK" => "mail_log.php?set_filter=Y&find_mailbox_id=" . $f_ID . "&lang=" . LANG, "TITLE" => GetMessage("MAIL_CHECK_LOG")); } else { CAdminMessage::ShowMessage(GetMessage("MAIL_CHECK_ERR") . " " . CMailError::GetErrorsText()); $aContext = array(array("TEXT" => GetMessage("MAIL_CHECK_MBOX_PARAMS"), "LINK" => "mail_mailbox_edit.php?ID=" . $f_ID . "&lang=" . LANG, "TITLE" => GetMessage("MAIL_CHECK_MBOX_PARAMS")), array("TEXT" => GetMessage("MAIL_CHECK_LOG"), "LINK" => "mail_log.php?set_filter=Y&find_mailbox_id=" . $f_ID . "&lang=" . LANG, "TITLE" => GetMessage("MAIL_CHECK_LOG"))); } $context = new CAdminContextMenu($aContext); $context->Show();
public static function Update($ID, $arFields) { global $DB; $ID = IntVal($ID); CMailError::ResetErrors(); if(is_set($arFields, "ACTIVE") && $arFields["ACTIVE"]!="Y") $arFields["ACTIVE"]="N"; if(is_set($arFields, "DELETE_MESSAGES") && $arFields["DELETE_MESSAGES"]!="Y") $arFields["DELETE_MESSAGES"]="N"; if(is_set($arFields, "USE_MD5") && $arFields["USE_MD5"]!="Y") $arFields["USE_MD5"]="N"; if(is_set($arFields, "USE_TLS") && $arFields["USE_TLS"]!="Y") $arFields["USE_TLS"]="N"; if (is_set($arFields, "SERVER_TYPE") && !in_array($arFields["SERVER_TYPE"], array("pop3", "smtp", "imap"))) $arFields["SERVER_TYPE"] = "pop3"; if(!CMailBox::CheckFields($arFields, $ID)) return false; if(is_set($arFields, "PASSWORD")) $arFields["PASSWORD"]=CMailUtil::Crypt($arFields["PASSWORD"]); $db_mbox = CMailbox::GetList(array('ID' => $ID)); if (($mbox = $db_mbox->fetch()) !== false) { if ($mbox['USER_ID'] != 0 || isset($arFields['USER_ID']) && $arFields['USER_ID'] != 0) { CUserCounter::Clear($mbox['USER_ID'], 'mail_unseen', $mbox['LID']); if (isset($arFields['LID']) && $mbox['LID'] != $arFields['LID']) CUserCounter::Clear($mbox['USER_ID'], 'mail_unseen', $arFields['LID']); if (isset($arFields['USER_ID']) && $mbox['USER_ID'] != $arFields['USER_ID']) { CUserCounter::Clear($arFields['USER_ID'], 'mail_unseen', $mbox['LID']); if (isset($arFields['LID']) && $mbox['LID'] != $arFields['LID']) CUserCounter::Clear($arFields['USER_ID'], 'mail_unseen', $arFields['LID']); } } } CAgent::RemoveAgent("CMailbox::CheckMailAgent(".$ID.");", "mail"); if(intval($arFields["PERIOD_CHECK"])>0 && $arFields["SERVER_TYPE"]=="pop3") CAgent::AddAgent("CMailbox::CheckMailAgent(".$ID.");", "mail", "N", intval($arFields["PERIOD_CHECK"])*60); $strUpdate = $DB->PrepareUpdate("b_mail_mailbox", $arFields); $strSql = "UPDATE b_mail_mailbox SET ". $strUpdate." ". "WHERE ID=".$ID; $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); CMailbox::SMTPReload(); return true; }