<?
require_once('include/global.php');
auth_limit("admin");


// check
	if (!$_GET['m_no'])
		msg('올바른 URL로 접근하여 주십시오');


// [2006-03-08] 메일서버가 동작중인지 확인
	require_once('include/admin_lib.php');
	mail_server_check_limit();


// get
	// 도메인관리자일 경우 자신의 도메인만 관리가 가능하게함.
	$q_where = '';
	if ($AUTH['auth_m_level'] < $G['LEVEL']['serveradmin'])
		$q_where = " AND d_no='" . $AUTH['auth_d_no'] . "' ";

	$q = "
		SELECT 
			m.m_id, d.d_name, d.d_no, m.m_forwarding_type
		FROM 
			" . $TB['MEMBER'] . " m,
			" . $TB['DOMAIN'] . " d
		WHERE 
			m.m_no = '" . $_GET['m_no'] . "'
			AND m.d_no = d.d_no
			".str_replace('d_no=', 'm.d_no=', $q_where)."
		";
	$mbr = db_get_row($q);
	if (!$mbr)
		msg("존재하지 않는 회원입니다.");

	$G_SYS['MAIL_DOMAIN'] = $mbr['d_name'];

// data
	$m_forwarding = '';
	$msg = '';
	$vars = '';
	$deny = array();
	$deny2 = array();
	$email_check = array();

	// 웹메일용처리 - 사용안함. or 메일남김.
	if ($_POST['m_forwarding_type'] != 'Y')
	{
		$vars .= '"mailbox"'."\r\n";
	}	// if()

	if ($_POST['m_forwarding'])
	{
		$emails = mime_addresses_parse(stripslashes($_POST['m_forwarding']), $G_SYS['DB_TEXT']);
		for ($i=0; $i<sizeof($emails); $i++)
		{
			$_email = strtolower(trim($emails[$i]['address']));
			$_ex = explode('@', $_email);
			$_domain = $_ex[1];
			if ($_email == $mbr['m_id'].'@'.$G_SYS[MAIL_DOMAIN])
			{
				$msg = "자신의 메일주소는 입력할 필요가 없으므로 자동생략됩니다.\\n\\n";
			// [2007-03-12] 메일 포워딩 제한 도메인 검사
			} else if (in_array($_domain, $G_SYS[FORWARD_DOMAIN_DENY]))
			{
				$deny[] = $_email;
			} else
			{
				// [2007-03-12] 중복된 주소 제거.
				if (!in_array($_email, $email_check))
				{
					// [2008-03-10] 루프 현상 방지
					$q = "
						SELECT
							m.*
						FROM
							" . $TB['MEMBER'] . " m,
							" . $TB['DOMAIN'] . " d
						WHERE
							m.d_no=d.d_no
							AND m.m_id = '". $_ex[0] . "'
							AND d.d_name  = '". $_ex[1] . "'
							AND m.m_forwarding_type != 'N'
							AND
								(
									m.m_forwarding='" . $mbr['m_id'].'@'.$G_SYS[MAIL_DOMAIN] . "'
									OR m.m_forwarding LIKE '" . $mbr['m_id'].'@'.$G_SYS[MAIL_DOMAIN] . ",%'
									OR m.m_forwarding LIKE '%," . $mbr['m_id'].'@'.$G_SYS[MAIL_DOMAIN] . "'
									OR m.m_forwarding LIKE '%," . $mbr['m_id'].'@'.$G_SYS[MAIL_DOMAIN] . ",%'
								)
						";
					$forwarding_exists = db_get_row($q);
					if ($forwarding_exists)
					{
						$deny2[] = $_email;
					} else
					{
						// 웹메일용처리 - 포워딩 주소
						if ($_POST['m_forwarding_type'] != 'N')
						{
							#if (!$m_forwarding)
							#{
							#	$vars .= '"redirect"';
							#}	// if()
							// [2006-09-27] 여러명일 경우 1 line 에 512byte 이상은 잘리는 문제를 위해 한 라인에 하나씩 처리함.
							$vars .= '"redirect"'."\t".'"'.$_email.'"'."\r\n";
						}	// if()

						if ($m_forwarding)
						{
							$m_forwarding .= ',';
						}	// if()
						$m_forwarding .= $_email;

						$email_check[] = $_email;
					}	// if()
				}	// if()
			}	// if()
		}	// for()

		// 웹메일용처리 - 포워딩 주소
		#if ($_POST['m_forwarding_type'] != 'N')
		#	$vars .= "\r\n";
	}	// if()


	// 웹메일용 처리.
		require_once('include/admin_lib.php');
		mbr_mailproc_set($mbr['m_id'], $vars);


	$m_forwarding = to_db_str($m_forwarding, $G_SYS['DB_TEXT'], false);

	$sql = "
		UPDATE
			" . $TB['MEMBER'] . "
		SET
			m_forwarding='" . $m_forwarding . "',
			m_forwarding_type='" . $_POST['m_forwarding_type'] . "'
		WHERE
			m_no='". $_GET['m_no'] . "'
			".$q_where."
		";
	db_query($sql);


// end
	// [2025-07-29] 메일계정 관리 로그 개선
	if ($mbr['m_forwarding_type'] !== $_POST['m_forwarding_type']) {
		$l_status = 'FORWARDUS';
		if (in_array($_POST['m_forwarding_type'], array('C', 'Y'))) {
			$l_status = 'FORWARDS';
		}

		mbr_proc_log($mbr['d_no'], $_GET['m_no'], $mbr['m_id'], $l_status);
	}

	$msg = '';
	if (sizeof($deny) > 0)
		$msg .= "[포워딩 제한 도메인]에 등록된 메일주소는 생략되었습니다..\\n\\n=> ".implode(', ', $deny)."\\n\\n";

	if (sizeof($deny2) > 0)
		$msg .= "상대방이 나에게 포워딩하도록 먼저 설정해두었습니다.\\n반복현상을 방지하기 위해 생략되었습니다..\\n\\n=> ".implode(', ', $deny2)."\\n\\n";

	#if ($msg)
	msg($msg."메일 포워딩이 수정되었습니다.\\n\\n\\n※ 메일을 발송하여 포워딩 결과를 확인해보셔야 합니다.\\n\\n    특히 리턴메일이나 이상증상이 없는지 5~10분뒤에 한번 더 확인해보셔야 합니다.", 0);


	?>
		<script language="JavaScript">
		<!--
			if (opener)
			{
                // [2020-03] 메일 포워딩 셋팅시 reflect xss 취약점 개선
				//opener.location.href="<?//= addslashes($_GET['back_url']) ?>";
                opener.location.reload();
			}
			window.close();
		//-->
		</script>
	<?

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