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


// check - 값이 없을때도 있음.
	// [2007-02-22] 도메인관리자가 메일포워딩 제한 가능.
	if ($G['DINFO']['d_svc_forward'] == 'N')
		msg("관리자가 [메일 포워딩]기능을 사용할 수 없도록 제한해두었습니다.");

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

// 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 == $AUTH['auth_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='" . $AUTH['auth_m_id'].'@'.$G_SYS[MAIL_DOMAIN] . "'
									OR m.m_forwarding LIKE '" . $AUTH['auth_m_id'].'@'.$G_SYS[MAIL_DOMAIN] . ",%'
									OR m.m_forwarding LIKE '%," . $AUTH['auth_m_id'].'@'.$G_SYS[MAIL_DOMAIN] . "'
									OR m.m_forwarding LIKE '%," . $AUTH['auth_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($AUTH['auth_m_id'], $vars);


	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='". $AUTH['auth_m_no'] . "'
		";
	db_query($sql);


// end
	$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);
	movepage('mail_forward.php');


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