<?
require_once('include/global.php');
require_once('include/admin_lib.php');
require_once('sadmin_conf.inc.php');


// set
	$CFG['TITLE'] = '<b>메일서버관리</b>';
    $nm_reg = nm_register_get();


	// [2025-12-03] 도메인 개수
	$domain_count = db_get_one("SELECT count(*) FROM " . $TB['DOMAIN']);

	// [2025-12-03] 회원 인원
	$member_count  = db_get_one("SELECT count(*) FROM " . $TB['MEMBER'] . " WHERE m_usertype IS NULL");

	// [2025-12-03] 2단계 인증 사용
	$tfa_count  = db_get_one("SELECT count(*) FROM " . $TB['MEMBER'] . " WHERE m_usertype IS NULL AND m_2fa_isuse='Y'");

	// 메일 서버 설정
	$cfgs = nm_cfgfileget('server.tab');
	$mail_quota = ceil(nm_cfg_val_get($cfgs, 'MaxMessageSize')/1024);

// skin view
	nskinset('sadmin', 'sadmin.html');
	include($NSKIN['view_layout']);



// [2010-06-04] 바이러스 차단용 백신프로그램 업데이트 안내
// * 참고 : 안내가 불 필요할 경우 이 부분은 삭제하셔도 사용상 아무런 문제가 없습니다.
	flush();

	if ($nm_reg['s_virus_scan'])
	{
			$vs = get_virus_clamav_version();
			$alert = ''.$vs['detail'];
			$days = 0;
			if ($alert != '')
			{
				// AntiVirus 4일 이상 업데이트가 지난 경우, 단순 경고
				$_ex = explode('/', $alert);
				if ($_ex[2]) {
					$today = new DateTime();
					$d1 = new DateTime($_ex[2]);
					$diff = $today->diff($d1);

					if ($diff->days > 3) {
						$days= $diff->days;
					}
				}
				?>
					<script language="JavaScript">
					<!--//
						document.getElementById('nmail_virus_alert').innerHTML = '<?= str_replace(array("\r\n", "\n"), "", $alert) ?> <? if ($days > 3) { ?> (<strong><?= $days ?>일전 업데이트</strong>) <? } ?>';
					//-->
					</script>
				<?
			}	// if()
		?><?
	}	// if()


// [2013-07-15] 최신 버전 확인
	flush();
	$url = 'http://www.passkorea.net/nmailphp/version_check.txt';
	$pu = parse_url($url);
	if ($pu['port'] == '')
		$pu['port'] = 80;

	$result = array();
	$result['code'] = 0;
	$result['msg'] = '';
	$fp = @fsockopen($pu['host'], $pu['port'], $errno, $errstr, 2);
	if (!$fp) {
		$result['msg'] = "HTTP connect fail. ".$errstr." (".$errno.")";
	} else {
	   fputs($fp, "GET ".$pu['path']."?".$pu['query']." HTTP/1.0\r\nHost: ".$pu['host']."\r\n\r\n");

	   while (!feof($fp)) {
		   $result['msg'] .= fgets ($fp,128);
	   }
	   fclose ($fp);

	   if (trim($result['msg']) != '')
	   {
		   $result['code'] = 1;
		   $ex = explode("\r\n\r\n", $result['msg']);
		   $result['msg'] = trim($ex[1]);
	   }	// if()
	}

	if (preg_match('/[0-9]+\.[0-9]+\.?[0-9]?/', $result['msg']) && version_compare($result['msg'], preg_replace('/-[a-zA-Z0-9]+/', '', NM_VER), '>'))		// 2.6.1.beta3 / 2.5.3.beta26.pl1 / 2.5.3.pl1 일때도 2.6.1 업데이트 확인됨. 2.6.1.pl1 는 정상적으로 미확인됨.
	{
		?>
			<script language="JavaScript">
			<!--
				document.getElementById('nmail_version_check').innerHTML = '<br><br><a href="https://www.passkorea.net/" target="_blank"><span style="color: red; font-size: 11pt; text-decoration: underline; font-weight: bold;">최신 버전( <?= str_replace("'", "", $result['msg']) ?> ) 업데이트 확인하기!!!</span></a>';
			//-->
			</script>
		<?
	}	// if()


// [2013-08-29] SMTP 서비스 응답 확인하기
	flush();

	$xmail_build_date = null;
	$xmail_connect_error = false;
	$fp = @fsockopen($G_SYS[SMTP_ADDR], $G_SYS[SMTP_PORT], $errno, $errstr, 2);
	if (!$fp) {
		if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
			$errstr = iconv_fix('CP949', $errstr, 'UTF-8');
		}
		$nmail_smtp_check = "연결 실패 - " . trim($errstr) . " (" . $errno . ")";
		$xmail_connect_error = true;
	} else {
		$nmail_smtp_check = trim(fgets($fp,1024));
		fputs($fp, "QUIT\r\n");
		fclose($fp);

		preg_match('/XMail [0-9\.]+ [a-z]+([0-9]+)/i', $nmail_smtp_check, $mc);
		if (isset($mc[1]) && is_numeric($mc[1])) {
			$xmail_build_date = $mc[1];
		}
	}

	if ($xmail_build_date !== null && $xmail_build_date >= $G_SYS['XMAIL_BUILD_DATE'])
	{
		$nmail_smtp_check = "최신 버전으로 확인됩니다.";       // 화면 출력 없음
	} else {
		if ($xmail_connect_error) {
			$nmail_smtp_check
					= '<span style="color: red; font-size: 11pt;">메일엔진 연결이 실패하였습니다.  서버에서 xmail 서비스 실행을 확인하십시오.</span><br> &nbsp; &nbsp;  &nbsp; &nbsp; SMTP (' . $G_SYS[SMTP_ADDR] . ':' . $G_SYS[SMTP_PORT] . ') 응답 : '
					. $nmail_smtp_check;
		} else {
			$nmail_smtp_check
					= '<span style="color: red; font-size: 11pt;">메일엔진이 최신 버전이 아닙니다.  업데이트 매뉴얼에서 [<b>메일엔진 업데이트</b>]항목을 확인하십시오.</span><br> &nbsp; &nbsp;  &nbsp; &nbsp; SMTP (' . $G_SYS[SMTP_PORT] . ') 응답 : '
					. $nmail_smtp_check;
		}
		?>
			<script language="JavaScript">
			<!--
	            try {
	                document.getElementById('nmail_smtp_check').innerHTML = <?= json_encode($nmail_smtp_check) ?>;
	            } catch (e) {
	                console.log('메일엔진 버전 정보 표시 실패 : ' + e.message);
	            }
			//-->
			</script>
		<?
	}	// if()

require_once('include/global_end.php');
?>