#!/usr/bin/php
<?
chdir(dirname(__FILE__));
require_once('../nmail/include/global.php');
require_once("include/mail_lib.php");
require_once("include/file.php");
require_once('include/admin_lib.php');


// 웹상에서의 실행방지.
if ($_SERVER['DOCUMENT_ROOT'] || $_SERVER['SERVER_SOFTWARE'])
{
	die("Access Denied");	
}	// if()


echo "[Nmail] 메일링 답장 주소를 '메일링 주소'에서 '보낸사람 주소'로 일괄 변경하는 작업\n\n";
echo "1. 이전버젼에서 메일링을 통해 받은 메일에 대해 답장을 보냈을 때,\n";
echo "   보낸사람이 아닌 메일링 주소로 발송되어 불편했던 사항을 개선하였습니다.\n";
echo "2. 패치적용후 1회만 실행시키면 됩니다.\n";

// set
set_time_limit(0);
ini_set('memory_limit', '2047M');
$memory_limit = ini_get('memory_limit');
#echo "memory_get_usage: ".number_format(memory_get_usage()) . "\n"; 

$_start = getmicrotime();

// 입력값 확인.
$d_name_input = addslashes($_SERVER['argv'][1]);
$m_id_input = addslashes($_SERVER['argv'][2]);
#if (!$d_name_input || !$m_id_input)
if (!$d_name_input)
{
	die("  사용방법)\n    - 특정 메일링리스트 : ".$_SERVER['PHP_SELF']." domain.com mailing_id\n    - 특정 도메인 : ".$_SERVER['PHP_SELF']." domain.com\n    - 전체 도메인 : ".$_SERVER['PHP_SELF']." ALL\n");
}	// if()


if ($d_name_input == 'ALL')
{
	$dm = db_get_rows("SELECT d_no, d_name FROM " . $TB['DOMAIN'] . "");
} else 
{
	$d_no = db_get_one("SELECT d_no FROM " . $TB['DOMAIN'] . " WHERE d_name = '" . $d_name_input . "'");
	if (!$d_no)
		die("존재하지 않는 도메인입니다.\n=> " . $d_name_input."\n");

	$q_where = '';
	if ($m_id_input)
	{
		$q_where = " m_id = '" . $m_id_input . "' AND ";
	}	// if()

	$dm = array(array('d_no'=>$d_no, 'd_name'=>$d_name_input));
}	// if()

$_proc_cnt = 0;
$_skip_cnt = 0;

for ($di=0; $di<sizeof($dm); $di++)
{
	$d_no = $dm[$di]['d_no'];
	$d_name = $dm[$di]['d_name'];

	echo "\n";
	echo "#############################################\n";
	echo "# [".($di+1)."/".sizeof($dm)."] ".$d_name."\n";
	echo "#############################################\n";

	$mbr = db_get_rows("SELECT m_no, m_id, m_etc1, m_etc2, m_email FROM " . $TB['MEMBER'] . " WHERE ".$q_where." d_no = '" . $d_no . "' AND m_usertype='M'");
	$mbr_cnt = sizeof($mbr);
	if ($mbr_cnt < 1)
	{
		if ($m_id_input)
		{
			die("존재하지 않는 메일링리스트입니다.\n=> " . $m_id_input."\n");
		} else if ($d_name_input != 'ALL')
		{
			die("도메인내에 등록된 메일링리스트가 없습니다.\n");
		}	// if()
	} else 
	{
		echo "메일링 리스트 - 총 ".number_format($mbr_cnt)."개\n";


		for ($mi=0; $mi<$mbr_cnt; $mi++)
		{
			// set
			$m_id = $mbr[$mi]['m_id'];
			$m_usereplyto = $mbr[$mi]['m_etc2'];		// 0 - 보낸사람 주소, 1 - 메일링 주소

			$G_SYS['MAIL_DOMAIN'] = $d_name;

			if ($m_usereplyto == '1')
			{
				// update
				#vd($mbr[$mi]['m_no']); vd($mbr[$mi]['m_id']); vd($mbr[$mi]['m_etc1']); vd($mbr[$mi]['m_email']); vd($mbr[$mi]['m_etc2']);

				$sql = "
					UPDATE
						" . $TB['MEMBER'] . "
					SET
						m_etc2='0'
					WHERE
						m_no='" . $mbr[$mi]['m_no'] . "'
					";
				db_query($sql);

				$_proc_cnt++;

				echo "[".($mi+1)."/".$mbr_cnt."][".$m_id."] 답장 주소 변경 : 메일링 주소 -> 보낸사람 주소\n";
			} else 
			{
				$_skip_cnt++;
				echo "[".($mi+1)."/".$mbr_cnt."][".$m_id."] 생략 : 이미 보낸사람 주소로 설정됨\n";
			}	// if()


			// 메일엔진 - 메일링 리스트 세부설정
				mbr_var_mod_mailing($mbr[$mi]['m_id'], $mbr[$mi]['m_etc1'], $mbr[$mi]['m_email'], 0);

		}	// for()

		#echo "[" . round((getmicrotime() - $_start),4) . "sec]메일링리스트 답장 주소 변경 작업이 완료되었습니다.\n";

	}	// if()

}	// for()

echo "\n\n모든 작업이 완료되었습니다.\n";
echo "    답장 주소 변경 - ".$_proc_cnt."개\n";
echo "    생략 - ".$_skip_cnt."개\n";


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