コード例 #1
0
ファイル: mail.php プロジェクト: ASDAFF/1C_Bitrix_info_site
	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;
	}
コード例 #2
0
ファイル: mail.php プロジェクト: k-kalashnikov/geekcon_new
 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;
 }
コード例 #3
0
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") . '&quot;' . $f_NAME . '&quot;:</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();
コード例 #4
0
ファイル: mail.php プロジェクト: ASDAFF/bxApiDocs
	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;
	}