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; }
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; }
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; }