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")); }
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); } } }
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") . '"' . $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")));
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()); }
<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
$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'];