• Модуль: mail
  • Путь к файлу: ~/bitrix/modules/mail/classes/general/smtp.php
  • Класс: CSMTPServer
  • Вызов: CSMTPServer::ReloadServers
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);
	}
}