Example #1
0
	function check_connect_mail()
	{
		if (!CModule::IncludeModule('mail'))
			return $this->Result(null, GetMessage("MAIN_SC_MAIL_IS_NOT_INSTALLED"));
		$rs = CMailBox::GetList(array(), array('SERVER_TYPE' => 'imap'));
		if ($rs->Fetch())
			return true;
		return $this->Result(null, GetMessage("MAIN_SC_MAIL_INTEGRATION"));
	}
Example #2
0
 function ReloadServers()
 {
     global $BX_MAIL_FILTER_CACHE;
     $BX_MAIL_FILTER_CACHE = array();
     $rnd = uniqid();
     $dbr = CMailBox::GetList(array(), array("ACTIVE" => "Y", "SERVER_TYPE" => "smtp"));
     $arFounded = array();
     while ($arr = $dbr->Fetch()) {
         $bFound = false;
         foreach ($this->arServers as $server) {
             if ($server->arFields["PORT"] == $arr["PORT"] && $server->arFields["SERVER"] == ($arr["SERVER"] == "*" ? "0.0.0.0" : $arr["SERVER"])) {
                 $server->arFields = $arr;
                 $server->rnd = $rnd;
                 $bFound = true;
                 break;
             }
         }
         if (!$bFound) {
             $server = new CSMTPServerHost($this, $arr);
             $server->rnd = $rnd;
             $server->Start();
             $this->arServers[] = $server;
         }
     }
     $arServers = $this->arServers;
     foreach ($arServers as $k => $server) {
         if ($server->rnd != $rnd) {
             $server->Stop($k);
         }
     }
 }
Example #3
0
	function CheckFields($arFields, $ID=false)
	{
		global $APPLICATION;
		$arMsg = array();

		if (is_set($arFields, 'NAME') && strlen($arFields['NAME']) < 1)
		{
			CMailError::SetError('B_MAIL_ERR_NAME', GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_NAME').'"');
			$arMsg[] = array('id' => 'NAME', 'text' => GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_NAME').'"');
		}

		if (in_array(strtolower($arFields['SERVER_TYPE']), array('pop3', 'imap', 'controller', 'domain', 'crdomain')) && is_set($arFields, 'LOGIN') && strlen($arFields['LOGIN']) < 1)
		{
			CMailError::SetError('B_MAIL_ERR_LOGIN', GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_LOGIN').'"');
			$arMsg[] = array('id' => 'LOGIN', 'text' => GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_LOGIN').'"');
		}

		if (in_array(strtolower($arFields['SERVER_TYPE']), array('pop3', 'imap')) && is_set($arFields, 'PASSWORD') && strlen($arFields['PASSWORD']) < 1)
		{
			CMailError::SetError('B_MAIL_ERR_PASSWORD', GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_PASSWORD').'"');
			$arMsg[] = array('id' => 'PASSWORD', 'text' => GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_PASSWORD').'"');
		}

		if (strtolower($arFields['SERVER_TYPE']) == 'imap' && is_set($arFields, 'LINK') && strlen($arFields['LINK']) < 1)
		{
			CMailError::SetError('B_MAIL_ERR_LINK', GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_LINK').'"');
			$arMsg[] = array('id' => 'LINK', 'text' => GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_LINK').'"');
		}

		if (in_array(strtolower($arFields['SERVER_TYPE']), array('imap', 'controller', 'domain', 'crdomain')) && is_set($arFields, 'USER_ID') && strlen($arFields['USER_ID']) < 1)
		{
			CMailError::SetError('B_MAIL_ERR_USER_ID', GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_USER_ID').'"');
			$arMsg[] = array('id' => 'USER_ID', 'text' => GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_USER_ID').'"');
		}

		if (in_array(strtolower($arFields['SERVER_TYPE']), array('pop3', 'smtp', 'imap')) && is_set($arFields, 'SERVER') && strlen($arFields['SERVER']) < 1)
		{
			CMailError::SetError('B_MAIL_ERR_SERVER_NAME', GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_SERVER').'"');
			$arMsg[] = array('id' => 'SERVER', 'text' => GetMessage('MAIL_CL_ERR_NAME').' "'.GetMessage('MAIL_CL_SERVER').'"');
		}
		elseif (strtolower($arFields['SERVER_TYPE']) == 'smtp')
		{
			$dbres = CMailBox::GetList(array(), array('ACTIVE' => 'Y', 'SERVER_TYPE' => 'smtp', 'SERVER' => $arFields['SERVER'], 'PORT' => $arFields['PORT']));
			while($arres = $dbres->Fetch())
			{
				if ($ID === false || $arres['ID'] != $ID)
				{
					CMailError::SetError('B_MAIL_ERR_SERVER_NAME',  GetMessage('B_MAIL_ERR_SN').' "'.GetMessage('MAIL_CL_SERVER').'"');
					$arMsg[] = array('id' => 'SERVER', 'text' => GetMessage('B_MAIL_ERR_SN').' "'.GetMessage('MAIL_CL_SERVER').'"');
					break;
				}
			}
		}

		if (is_set($arFields, 'LID'))
		{
			$r = CLang::GetByID($arFields['LID']);
			if (!$r->Fetch())
			{
				CMailError::SetError('B_MAIL_ERR_BAD_LANG', GetMessage('MAIL_CL_ERR_BAD_LANG'));
				$arMsg[] = array('id' => 'LID', 'text' => GetMessage('MAIL_CL_ERR_BAD_LANG'));
			}
		}
		elseif ($ID === false)
		{
			CMailError::SetError('B_MAIL_ERR_BAD_LANG_NA', GetMessage('MAIL_CL_ERR_BAD_LANG_NX'));
			$arMsg[] = array('id' => 'LID', 'text' => GetMessage('MAIL_CL_ERR_BAD_LANG_NX'));
		}

		if ($arFields['USER_ID'])
		{
			if (is_set($arFields, 'SERVICE_ID'))
			{
				$result = Bitrix\Mail\MailServicesTable::getList(array(
					'filter' => array('=SITE_ID' => $arFields['LID'], '=ID' => $arFields['SERVICE_ID'])
				));
				if (!$result->fetch())
				{
					CMailError::SetError('B_MAIL_ERR_BAD_SERVICE_ID', GetMessage('MAIL_CL_ERR_BAD_SERVICE_ID'));
					$arMsg[] = array('id' => 'SERVICE_ID', 'text' => GetMessage('MAIL_CL_ERR_BAD_SERVICE_ID'));
				}
			}
			else if ($ID === false)
			{
				CMailError::SetError('B_MAIL_ERR_BAD_SERVICE_ID_NA', GetMessage('MAIL_CL_ERR_BAD_SERVICE_ID_NX'));
				$arMsg[] = array('id' => 'SERVICE_ID', 'text' => GetMessage('MAIL_CL_ERR_BAD_SERVICE_ID_NX'));
			}
		}

		if (!empty($arMsg))
		{
			$e = new CAdminException($arMsg);
			$APPLICATION->ThrowException($e);
			return false;
		}

		return true;
	}
        if (!$lAdmin->IsUpdated($ID)) {
            continue;
        }
        $DB->StartTransaction();
        if (!CMailBox::Update($ID, $arFields)) {
            $e = $APPLICATION->GetException();
            $lAdmin->AddUpdateError(GetMessage("MAIL_SAVE_ERROR") . " #" . $ID . ": " . $e->GetString(), $ID);
            $DB->Rollback();
        }
        $DB->Commit();
    }
}
// обработка действий групповых и одиночных
if ($MOD_RIGHT == "W" && ($arID = $lAdmin->GroupAction())) {
    if ($_REQUEST['action_target'] == 'selected') {
        $rsData = CMailBox::GetList(array($by => $order), $arFilter);
        while ($arRes = $rsData->Fetch()) {
            $arID[] = $arRes['ID'];
        }
    }
    foreach ($arID as $ID) {
        if (strlen($ID) <= 0) {
            continue;
        }
        $ID = IntVal($ID);
        switch ($_REQUEST['action']) {
            case "delete":
                @set_time_limit(0);
                $DB->StartTransaction();
                if (!CMailBox::Delete($ID)) {
                    $DB->Rollback();
		<td><?php 
    echo $str_TIMESTAMP_X;
    ?>
</td>
	</tr>
	<?php 
}
?>
	<tr>
		<td width="40%"><?php 
echo GetMessage("MAIL_FLT_EDT_MBOX");
?>
 </td>
		<td width="60%">
		<?php 
$mb = CMailBox::GetList(array("NAME" => "ASC", "ID" => "ASC"));
?>
		<select name="MAILBOX_ID">
		<?php 
while ($mb->ExtractFields("mb_")) {
    ?>
<option value="<?php 
    echo $mb_ID;
    ?>
"<?php 
    if ($str_MAILBOX_ID == $mb_ID) {
        echo " selected";
    }
    ?>
><?php 
    echo $mb_NAME;
?>
">
			<?php 
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")));
Example #7
0
 function CheckFields($arFields, $ID = false)
 {
     $err_cnt = CMailError::ErrCount();
     $arMsg = array();
     if (is_set($arFields, "NAME") && strlen($arFields["NAME"]) < 1) {
         CMailError::SetError("B_MAIL_ERR_NAME", GetMessage("MAIL_CL_ERR_NAME") . " \"" . GetMessage("MAIL_CL_NAME") . "\"");
         $arMsg[] = array("id" => "NAME", "text" => GetMessage("MAIL_CL_ERR_NAME") . " \"" . GetMessage("MAIL_CL_NAME") . "\"");
     }
     if (strtolower($arFields["SERVER_TYPE"]) == "pop3" && is_set($arFields, "LOGIN") && strlen($arFields["LOGIN"]) < 1) {
         CMailError::SetError("B_MAIL_ERR_LOGIN", GetMessage("MAIL_CL_ERR_NAME") . " \"" . GetMessage("MAIL_CL_LOGIN") . "\"");
         $arMsg[] = array("id" => "LOGIN", "text" => GetMessage("MAIL_CL_ERR_NAME") . " \"" . GetMessage("MAIL_CL_LOGIN") . "\"");
     }
     if (strtolower($arFields["SERVER_TYPE"]) == "pop3" && is_set($arFields, "PASSWORD") && strlen($arFields["PASSWORD"]) < 1) {
         CMailError::SetError("B_MAIL_ERR_PASSWORD", GetMessage("MAIL_CL_ERR_NAME") . " \"" . GetMessage("MAIL_CL_PASSWORD") . "\"");
         $arMsg[] = array("id" => "PASSWORD", "text" => GetMessage("MAIL_CL_ERR_NAME") . " \"" . GetMessage("MAIL_CL_PASSWORD") . "\"");
     }
     if (is_set($arFields, "SERVER") && strlen($arFields["SERVER"]) < 1) {
         CMailError::SetError("B_MAIL_ERR_SERVER_NAME", GetMessage("MAIL_CL_ERR_NAME") . " \"" . GetMessage("MAIL_CL_SERVER") . "\"");
         $arMsg[] = array("id" => "SERVER", "text" => GetMessage("MAIL_CL_ERR_NAME") . " \"" . GetMessage("MAIL_CL_SERVER") . "\"");
     } elseif (strtolower($arFields["SERVER_TYPE"]) == "smtp") {
         $dbres = CMailBox::GetList(array(), array("ACTIVE" => "Y", "SERVER_TYPE" => "smtp", "SERVER" => $arFields["SERVER"], "PORT" => $arFields["PORT"]));
         while ($arres = $dbres->Fetch()) {
             if ($ID === false || $arres["ID"] != $ID) {
                 CMailError::SetError("B_MAIL_ERR_SERVER_NAME", GetMessage("B_MAIL_ERR_SN") . " \"" . GetMessage("MAIL_CL_SERVER") . "\"");
                 $arMsg[] = array("id" => "SERVER", "text" => GetMessage("B_MAIL_ERR_SN") . " (\"" . GetMessage("MAIL_CL_SERVER") . "\")");
                 break;
             }
         }
     }
     if (is_set($arFields, "LID")) {
         $r = CLang::GetByID($arFields["LID"]);
         if (!$r->Fetch()) {
             CMailError::SetError("B_MAIL_ERR_BAD_LANG", GetMessage("MAIL_CL_ERR_BAD_LANG"));
             $arMsg[] = array("id" => "LID", "text" => GetMessage("MAIL_CL_ERR_BAD_LANG"));
         }
     } elseif ($ID === false) {
         CMailError::SetError("B_MAIL_ERR_BAD_LANG_NA", GetMessage("MAIL_CL_ERR_BAD_LANG_NX"));
         $arMsg[] = array("id" => "LID", "text" => GetMessage("MAIL_CL_ERR_BAD_LANG_NX"));
     }
     if (!empty($arMsg)) {
         $e = new CAdminException($arMsg);
         $GLOBALS["APPLICATION"]->ThrowException($e);
         return false;
     }
     return true;
     //return ($err_cnt == CMailError::ErrCount());
 }
Example #8
0
		<td><?php 
    echo $str_TIMESTAMP_X;
    ?>
</td>
	</tr>
	<?php 
}
?>
	<tr>
		<td width="40%"><?php 
echo GetMessage("MAIL_FLT_EDT_MBOX");
?>
 </td>
		<td width="60%">
		<?php 
$mb = CMailBox::GetList(array("NAME" => "ASC", "ID" => "ASC"), array('USER_ID' => 0));
?>
		<select name="MAILBOX_ID">
		<?php 
ClearVars("mb_");
while ($mb->ExtractFields("mb_")) {
    ?>
<option value="<?php 
    echo $mb_ID;
    ?>
"<?php 
    if ($str_MAILBOX_ID == $mb_ID) {
        echo " selected";
    }
    ?>
><?php 
Example #9
0
    $arResult['MAILBOXES_LIST'][$arMailF['MAILBOX_ID']] = $arMailF['MAILBOX_NAME'];
    if ($arMailF['MAILBOX_TYPE'] == 'smtp' && count($arMailF['DOMAINS']) > 0) {
        $mailBoxID = $arMailF['MAILBOX_ID'];
        $rsMailbox = CMailBox::GetById($mailBoxID);
        $arMailbox = $rsMailbox->Fetch();
        if (!is_array($arMailbox)) {
            continue;
        }
        $arSettings['MAILBOXES'][$mailBoxID] = array('ID' => $mailBoxID, 'SERVER_TYPE' => 'smtp', 'SMTP_DOMAIN' => preg_split("/[\r\n]+/", $arMailF['DOMAINS'], -1, PREG_SPLIT_NO_EMPTY), 'SMTP_EMAIL' => $mailBoxID === $arSettings['MAILBOX_ID'] ? $arSettings['EMAIL_LOCAL_PART'] : '');
    }
}
// b. Selection of pop3 servers
$pop3MailBoxExist = false;
//$rsMailFilter = CMailFilter::GetList(array(), array('SERVER_TYPE' => 'pop3'));
//while($arMailF = $rsMailFilter->Fetch())
$rsMailBoxes = CMailBox::GetList(array(), array('SERVER_TYPE' => 'pop3'));
while ($arMailBox = $rsMailBoxes->Fetch()) {
    //$mailBoxID = intval($arMailF['MAILBOX_ID']);
    //$rsMailbox = CMailBox::GetById($mailBoxID);
    //$arMailbox = $rsMailbox->Fetch();
    $mailBoxID = intval($arMailBox['ID']);
    if (!is_array($arMailBox)) {
        continue;
    }
    $arMailBoxSettings = array('ID' => $mailBoxID, 'SERVER_TYPE' => 'pop3', 'ACTIVE' => $arMailBox['ACTIVE'], 'SERVER' => $arMailBox['SERVER'], 'PORT' => $arMailBox['PORT'], 'LOGIN' => $arMailBox['LOGIN'], 'PASSWORD' => $arMailBox['PASSWORD'], 'SSL' => $arMailBox['USE_TLS'] == 'Y' || $arMailBox['USE_TLS'] == 'S' ? 'Y' : 'N', 'DELETE' => $arMailBox['DELETE_MESSAGES'] === 'Y', 'PERIOD_CHECK' => $arMailBox['PERIOD_CHECK'], 'POP3_EMAIL' => '');
    if (isset($arSettings['MAILBOX_ID']) && $arSettings['MAILBOX_ID'] === $mailBoxID) {
        if (isset($arSettings['ACTIVE'])) {
            $arMailBoxSettings['ACTIVE'] = $arSettings['ACTIVE'];
        }
        if (isset($arSettings['SERVER'])) {
            $arMailBoxSettings['SERVER'] = $arSettings['SERVER'];