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

// [2011-03-11] 서명 위치 변경
	$q = "SELECT sg.sg_content FROM " . $TB['MEMBER'] . " m, " . $TB['SIGN'] . " sg WHERE m.m_no='" . $AUTH['auth_m_no'] . "' AND m.m_no=sg.m_no AND m.m_sign_default=sg.sg_no";
	$sg_content = db_get_one($q);

// [2025-11-06] 발송 전 미리보기
	$q = "SELECT m_send_preview FROM " . $TB['MEMBER'] . " WHERE m_no='" . $AUTH['auth_m_no'] . "'";
	$send_preview = db_get_one($q);

// set
	$CFG = array();
	$view = array();

	// [2013-01-28] 보낸사람 선택기능 (앨리어스 도메인/주소 연동)
	$dfcon = get_default_config($AUTH['auth_m_no']);
	$view['mf_from_name_default'] = $dfcon['m_cfg_from_name'];

	$view['mf_from_select'] = array();

	if (!$G_SYS['NM_ALIAS_MAIL_FROM_SEL_SKIP'])
	{
		$q = "SELECT da_name FROM " . $TB['DOMAIN_ALIAS'] . " WHERE d_no='" . $G['DINFO']['d_no'] . "' AND da_mail_from_select='Y' ORDER BY da_name";
		$domain_alias = db_get_rows($q, true);

		$domains = array_merge(array($G['DINFO']['d_name']), (array)$domain_alias['da_name']);

		// [2013-07-08] m_cfg_from_addr='Y', '보낸사람 선택시 사용'
		$q = "SELECT m_id, m_cfg_from_name name FROM " . $TB['MEMBER'] . " WHERE d_no='" . $G['DINFO']['d_no'] . "' AND m_usertype='A' AND m_name='" . $AUTH['auth_m_id'] . "' AND m_cfg_from_addr='Y' ORDER BY m_id";
		$member_alias = db_get_rows($q);

		foreach ($domains as $key=>$domain)
		{
			$view['mf_from_select'][] = array('name'=>$view['mf_from_name_default'], 'email'=>$AUTH['auth_m_id'].'@'.$domain);

			foreach ($member_alias as $key2=>$member)
			{
				if ($member['name'] == '')
					$member['name'] = $view['mf_from_name_default'];
				$view['mf_from_select'][] = array('name'=>$member['name'], 'email'=>$member['m_id'].'@'.$domain);
			}	// foreach()
		}	// foreach()
	}	// if()

	// [2025-12-01] 대표 계정 사용 여부
	if ($G_SYS['NM_TEAM_MAIL']) {
		// [2025-12-01] 대표 계정 사용 중이고, 보낸주소 사용여부가 Y인 주소
		$q = "SELECT
				tm.*, d.d_name, m.m_name
			FROM
				" . $TB['TEAM_MAIL'] . " tm
				JOIN " . $TB['DOMAIN'] . " d ON tm.d_no = d.d_no
				JOIN " . $TB['MEMBER'] . " m ON tm.team_m_id = m.m_id AND tm.d_no = m.d_no
			WHERE
				1=1
				AND tm.d_no = '" . $AUTH['auth_d_no'] . "' 
				AND tm.m_id = '". $AUTH['auth_m_id'] ."' 
				AND tm.tm_is_from_use = 'Y'
			ORDER BY tm.team_m_id
			";
		$team_mails = db_get_rows($q);

		foreach ($team_mails as $team_mail) {

			$view['mf_from_select'][] = array('name'=>$team_mail['m_name'], 'email'=>$team_mail['team_m_id'].'@'.$team_mail['d_name']);
		}
	}

	// 보낸사람 기본 선택
	$view['mf_from_default'] = null;

	switch ($_GET['mode'])
	{
		case 'REPLY':
		case 'REPLY_ALL':
		case 'REPLY_ALL_ATTACHMENT':
		case 'FORWARD':
		case 'RESEND':
			if ($_GET['mode'] == 'REPLY')
			{
				$CFG['TITLE'] = "<b>편지쓰기</b> >> <b>답장</b>";
			} else if ($_GET['mode'] == 'REPLY_ALL')
			{
				$CFG['TITLE'] = "<b>편지쓰기</b> >> <b>전체 답장</b>";
			} else if ($_GET['mode'] == 'REPLY_ALL_ATTACHMENT')
			{
				$CFG['TITLE'] = "<b>편지쓰기</b> >> <b>전체 답장(첨부)</b>";
			} else if ($_GET['mode'] == 'RESEND')
			{
				$CFG['TITLE'] = "<b>편지쓰기</b> >> <b>다시 보내기</b>";
			} else
			{
				$CFG['TITLE'] = "<b>편지쓰기</b> >> <b>전달</b>";
			}	// if()

			// 원본 메일 정보
				// set data
					$mail_file_table = $AUTH[auth_m_mf_table];

				// db - select
					$sql = "
						SELECT
							mf_no, mf_to, mf_reply_to, mf_from, mf_subject, mf_body, mf_content_type, mf_send_date, mf_arrival_date, mf_filename, mb_id, mf_attach_names, mf_cc, mf_bcc, mf_charset
						FROM
							$mail_file_table
						WHERE
							mf_no='" . $_GET['mf_no'] . "'
							AND m_no='" . $AUTH['auth_m_no'] . "'
						";
					$row = db_get_row($sql);
					if (!$row)
						msg("존재하지 않는 메일입니다.\\n\\n이미 삭제되었을 수 있습니다.");

				// [2024-09-03] 전체 검색시 mb_id 지정하여 답장/전달시 CID 문제없도록 함
				if ( ! isset($_GET['mb_id']) || $_GET['mb_id'] === '') {
					$_GET['mb_id'] = $row['mb_id'];
				}

				// [2013-01-28] 보낸사람 선택기능 (앨리어스 도메인/주소, 대표 계정 연동)
					if (sizeof($view['mf_from_select']) > 1)
					{
						$_from_exists = db_rows_keytofield($view['mf_from_select']);
						if ($_GET['mode'] == 'RESEND')
						{
							// 다시 보내기 - 보낸사람 주소를 동일하게 선택
							$_from = mime_address_parse($row['mf_from']);
							if (in_array($_from['address'], $_from_exists['email']))
							{
								$view['mf_from_default'] = $_from['address'];
							}	// if()
						} else
						{
							// [2025-12-13] 받는사람/참조에서 일치하는 대표 계정 및 앨리어스 주소 있을 경우 자동 선택
							//   단, 보낸사람이 자신이거나 받는사람/참조에 자신의 주소가 있을 경우 자신의 주소 선택
							$_from = mime_address_parse($row['mf_from']);
							if ($_from['address'] != $AUTH['auth_m_email']) {
								$_to = mime_addresses_parse($row['mf_to'] . ',' . $row['mf_cc'], $G_SYS['DB_TEXT'] * 2);
								// 자신의 주소가 있을 경우 자신의 주소 선택
								for ($i = 0; $i < sizeof($_to); $i++) {
									if ($_to[$i]['address'] == $AUTH['auth_m_email']) {
										$view['mf_from_default'] = $AUTH['auth_m_email'];
										break;
									}    // if()
								}    // for()

								if ($view['mf_from_default'] === null) {
									// 일치하는 주소 선택
									for ($i = 0; $i < sizeof($_to); $i++) {
										if (in_array($_to[$i]['address'], $_from_exists['email'])) {
											$view['mf_from_default'] = $_to[$i]['address'];
											break;
										}    // if()
									}    // for()
								}
							}
						}	// if()
					}	// if()

				// set
					if ($_GET['mode'] == 'REPLY')
					{
						$view['mf_to'] = ($row['mf_reply_to']) ? htmlspecialchars_fix($row['mf_reply_to']) : htmlspecialchars_fix($row['mf_from']);
					} else if ($_GET['mode'] == 'REPLY_ALL' || $_GET['mode'] == 'REPLY_ALL_ATTACHMENT')		// 전체회신일때 자신의 메일주소만 생략하고 받는사람을 모두 넣음.
					{
						// [2006-03-03] 참조주소도 넣음.
						// [2006-03-28] 전체답장시 1024byte이상은 잘리던 문제를 디비에 저장된 데이타는 모두 사용가능하도록 함.
						// [2006-06-26] 전체답장시 '보낸사람'도 포함되도록 함.
						#$_to = mime_addresses_parse($row['mf_to'].','.$row['mf_cc'], $G_SYS['DB_TEXT']*2);
						#$_to = mime_addresses_parse($row['mf_from'].','.$row['mf_to'].','.$row['mf_cc'], $G_SYS['DB_TEXT']*2);
						$_to = mime_addresses_parse($row['mf_from'].','.$row['mf_to'], $G_SYS['DB_TEXT']*2);
						$_to_view = '';
						for ($i=0; $i<sizeof($_to); $i++)
						{
							// [2025-12-13] 전체답장시, 받는사람에서 자신의 주소와 대표 계정/앨리어스로 자동 선택된 주소 제외
//							if ($_to[$i]['address'] != $AUTH['auth_m_email'])
							if ($_to[$i]['address'] != $AUTH['auth_m_email'] && $_to[$i]['address'] != $view['mf_from_default'])
							{
								if ($_to_view != '')
									$_to_view .= ', ';
								$_to_view .= '"' . htmlspecialchars_fix($_to[$i]['display']) . '" <' . htmlspecialchars_fix($_to[$i]['address']) . '>';
							}	// if()
						}	// for()
						$view['mf_to'] = $_to_view;
						// [2006-10-30] 전체답장시 참조에 들어온 주소는 받는사람이 아닌 참조에 넣도록 함.
						if ($row['mf_cc'] != '')
						{
							$_cc = mime_addresses_parse($row['mf_cc'], $G_SYS['DB_TEXT']*2);
							$_cc_view = '';
							for ($i=0; $i<sizeof($_cc); $i++)
							{
								// 참조에서 자신의 주소는 제외
								if ($_cc[$i]['address'] != $AUTH['auth_m_email'])
								{
									if ($_cc_view != '')
										$_cc_view .= ', ';
									$_cc_view .= '"' . htmlspecialchars_fix($_cc[$i]['display']) . '" <' . htmlspecialchars_fix($_cc[$i]['address']) . '>';
								}	// if()
							}	// for()
							$view['mf_cc'] = $_cc_view;
						}	// if()
					} else if ($_GET['mode'] == 'RESEND')
					{
						$view['mf_to'] = htmlspecialchars_fix($row['mf_to']);
						$view['mf_cc'] = htmlspecialchars_fix($row['mf_cc']);
						$view['mf_bcc'] = htmlspecialchars_fix($row['mf_bcc']);
						if ($row['mb_id'] == 'draft')
						{
							$view['draft_mf_no'] = htmlspecialchars_fix($row['mf_no']);
							$view['draft_mf_filename'] = htmlspecialchars_fix($row['mf_filename']);
						}	// if()
					} else
					{
						$view['mf_to'] = '';
					}	// if()

					// 첨부파일 자동첨부
					if ($_GET['mode'] == 'FORWARD' || $_GET['mode'] == 'RESEND' || $_GET['mode'] === 'REPLY_ALL_ATTACHMENT')
					{
						$DEBUG['attach_save']['start'] = getmicrotime();
						$mail_file = get_mail_dir().'/'.get_mb_dir($row['mb_id']).'/'.$row['mf_filename'];
						if (!file_exists($mail_file) || !is_readable($mail_file))
						{
							error("메일 파일이 존재하지 않거나 퍼미션이 잘못되었습니다.\n=> ". $mail_file, 'FILE');
						}	// if()
						// mf_attach_names
						$_attach = attach_names_toarray($row['mf_attach_names']);

						if (get_activex_use())
						{
							$file_save = get_mailparse_attachments($mail_file, $_attach['struct']);
							$view['forward_attach_add_js'] = '';
							for ($i=0; $i<sizeof($file_save); $i++)
							{
								$view['forward_attach_add_js'] .= "attachFileFromMail('" . addslashes($_attach['name'][$i]) . "', '" . $file_save[$i] . "', '" . addslashes($_attach['size'][$i]) . "');\n";
							}	// for()
							if ($view['forward_attach_add_js'] != '')
								$view['forward_attach_add_js'] .= "attachSizeUpdate();\n";
                        } else if (is_multi_upload()) {
                            $file_save = get_mailparse_attachments($mail_file, $_attach['struct']);
                            $_mf_attachs_size = 0;
                            for ($i=0; $i<sizeof($file_save); $i++)
                            {
                                $_mf_attachs_size += $_attach['size'][$i];
                            }	// for()
                            $view['forward_attach_add_js'] = '';
                            for ($i = 0; $i < sizeof($file_save); $i++) {
                                #$view['forward_attach_add_js'] .= "/*" . addslashes($_attach['name'][$i]) . " " . addslashes($_attach['size'][$i]) . "*/";
                                #$view['forward_attach_add_js'] .= "||" . addslashes($_attach['name'][$i]) . "|" . $file_save[$i] . "|0";

                                $_mf_attach_name = addslashes($_attach['name'][$i]);
                                $_mf_attachs_size_h = filesize_human($_mf_attachs_size);
                                $_mf_attach_size = $_attach['size'][$i];
                                $_mf_attach_size_h = filesize_human($_attach['size'][$i]);
                                $view['forward_attach_add_js'] .= "addAttachSet('" . $_mf_attach_name . "', '" . $file_save[$i] . "', '" . $_mf_attachs_size_h . "', '" . $_mf_attachs_size . "', '" . $_mf_attach_size_h . "', '" . $_mf_attach_size . "', '');\n";
                            }    // for()
						} else
						{
							$file_save = get_mailparse_attachments($mail_file, $_attach['struct']);
							$_mf_attachs_size = 0;
							for ($i=0; $i<sizeof($file_save); $i++)
							{
								$_mf_attachs_size += $_attach['size'][$i];
							}	// for()
							$view['forward_attach_add_js'] = '';
							for ($i=0; $i<sizeof($file_save); $i++)
							{
								$_mf_attach_name = addslashes($_attach['name'][$i]);
								$_mf_attachs_size_h = filesize_human($_mf_attachs_size);
								$_mf_attach_size = $_attach['size'][$i];
								$_mf_attach_size_h = filesize_human($_attach['size'][$i]);
								$view['forward_attach_add_js'] .= "uploadSuccess('" . $_mf_attach_name . "', '" . $file_save[$i] . "', '" . $_mf_attachs_size_h . "', '" . $_mf_attachs_size . "', '" . $_mf_attach_size_h . "', '" . $_mf_attach_size . "', '');\n";
							}	// for()
						}	// if()

						$DEBUG['attach_save']['exec'] += getmicrotime() - $DEBUG['attach_save']['start'];
					}	// if()

					if ($_GET['mode'] == 'FORWARD')
					{
						$view['mf_subject'] = input_value('FW: ' . $row['mf_subject'].' ', 1);
					} else if ($_GET['mode'] == 'RESEND')
					{
						$view['mf_subject'] = input_value($row['mf_subject'].' ', 1);
					} else
					{
						$view['mf_subject'] = input_value('RE: ' . $row['mf_subject'].' ', 1);
					}	// if()
					// [2006-04-18] 기본값 지정.
					// [2010-07-09] 모바일에서는 텍스트 모드를 기본값으로 변경.
					if (is_not_default_webeditor())
					{
						if ($row['mf_content_type'] != 'P')
							$row['mf_body'] = strip_tags($row['mf_body']);

						$view['mf_content_type'] = 'P';		// 기본모드 텍스트
						$row['mf_content_type'] = 'P';
					} else
					{
						$view['mf_content_type'] = ($row['mf_content_type'] == '') ? 'H' : $row['mf_content_type'];
					}	// if()

					if ($_GET['mode'] == 'RESEND')
					{
						if ($row['mf_content_type'] == 'P')
						{
							$view['mf_body_text'] = htmlspecialchars_fix($row['mf_body']);
						} else
						{
							// [2006-04-18] 답장,전달,다시보내기시 <메일주소>형태의 태그가 사라지는 문제 해결.
							//$view['mf_body_html'] = htmlspecialchars_fix($row['mf_body']);
							$view['mf_body_html'] = htmlspecialchars_fix(str_replace("&", "&amp;", set_mailbody_editor($row['mf_body'], $row['mf_filename'])));
							// [2010-02-08] 특정 문자열이 들어간 경우의 웹에디터 문제 해결.
							// [2010-09-07] 일부 윈도우 서버에서의 페이지 멈춤 해결
							//$view['mf_body_html'] = preg_replace('/\&lt\;\?(.)*\?\&gt\;/', '&lt;!-- \\1 --&gt;', $view['mf_body_html']);
						}	// if()
					} else
					{
						$view['mf_send_date']  = ($row['mf_send_date'] != '0000-00-00 00:00:00') ? $row['mf_send_date'] : $row['mf_arrival_date'];
						if ($row['mf_content_type'] == 'P')
						{
							// [2011-03-11] 서명 위치 변경
							//$_body .= "\n\n\n-----Original Message-----\n";
							$_body .= "\n\n\n".get_sg_content($sg_content, $row['mf_content_type'])."\n\n-----Original Message-----\n";
							$_body .= 'From: ' . $row['mf_from'] . "\n";
							$_body .= 'Sent: ' . $view['mf_send_date'] . "\n";
							$_body .= 'To: ' . $row['mf_to'] . "\n";
							// [2009-06-02] 참조가 있을 경우 추가
							if ($row['mf_cc'] != '')
								$_body .= 'Cc: ' . $row['mf_cc'] . "\n";
							$_body .= 'Subject: ' . $row['mf_subject'] . "\n\n";
							$view['mf_body_text'] = htmlspecialchars_fix($_body . $row['mf_body']);
						} else
						{
                            // [2020-10] 편지쓰기 답장/전달시 원문과 구분시 수평선 구분사용(false시 기존 들여쓰기 형태)
                            if($G_SYS['NM_MAIL_WRITE_RELAY_LINE']){
                                $_body .= '<p></p><p></p>'.get_sg_content($sg_content, $row['mf_content_type'])."\n";
                                $_body .= '<p></p><div style="border: 0px; border-top: solid #DDDDDD 1.2pt; padding: 6px 0px 0px 0px;">'."\n";
                                $_body .= '<p><b>From:</b> ' . htmlspecialchars_fix($row['mf_from']) . '</p>'."\n";
                                $_body .= '<p><b>Sent:</b> ' . $view['mf_send_date'] . '</p>'."\n";
                                $_body .= '<p><b>To:</b> ' .htmlspecialchars_fix($row['mf_to']) . '</p>'."\n";
                                if ($row['mf_cc'] != '')
                                    $_body .= '<p><b>Cc:</b> ' .htmlspecialchars_fix($row['mf_cc']) . '</p>'."\n";
                                $_body .= '<p><b>Subject:</b> ' . htmlspecialchars_fix($row['mf_subject']) . '</p><p></p>'."\n";
                                $view['mf_body_html'] = htmlspecialchars_fix(str_replace("&", "&amp;", $_body . set_mailbody_editor($row['mf_body'], $row['mf_filename']) . '</div>'));
                            }else{
                                // [2009-02-19] 서명을 사용중인 경우 답장/전달시 원문의 구분을 위한 경계선 추가
                                //$_body .= '<br><br><br><hr>';
                                // [2011-03-11] 서명 위치 변경
                                //$_body .= '<p></p><p></p><p></p><blockquote style="border-left:#000000 2px solid; padding: 0px 0px 0px 5px; margin:0px 0px 0px 5px">-----Original Message-----<br>';
                                $_body .= '<p></p><p></p>'.get_sg_content($sg_content, $row['mf_content_type'])."\n";
                                $_body .= '<p></p><blockquote style="border-left:#000000 2px solid; padding: 0px 0px 0px 5px; margin:0px 0px 0px 5px"><p>-----Original Message-----</p>'."\n";
                                $_body .= '<p><b>From:</b> ' . htmlspecialchars_fix($row['mf_from']) . '</p>'."\n";
                                $_body .= '<p><b>Sent:</b> ' . $view['mf_send_date'] . '</p>'."\n";
                                $_body .= '<p><b>To:</b> ' .htmlspecialchars_fix($row['mf_to']) . '</p>'."\n";
                                // [2009-06-02] 참조가 있을 경우 추가
                                if ($row['mf_cc'] != '')
                                    $_body .= '<p><b>Cc:</b> ' .htmlspecialchars_fix($row['mf_cc']) . '</p>'."\n";
                                $_body .= '<p><b>Subject:</b> ' . htmlspecialchars_fix($row['mf_subject']) . '</p><p></p>'."\n";
                                // [2006-04-18] 답장,전달,다시보내기시 <메일주소>형태의 태그가 사라지는 문제 해결.
                                #$view['mf_body_html'] = htmlspecialchars_fix($_body . $row['mf_body']);
                                $view['mf_body_html'] = htmlspecialchars_fix(str_replace("&", "&amp;", $_body . set_mailbody_editor($row['mf_body'], $row['mf_filename']) . '</blockquote>'));
                                // [2010-02-08] 특정 문자열이 들어간 경우의 웹에디터 문제 해결.
                                // [2010-09-07] 일부 윈도우 서버에서의 페이지 멈춤 해결
                                //$view['mf_body_html'] = preg_replace('/\&lt\;\?(.)*\?\&gt\;/', '&lt;!-- \\1 --&gt;', $view['mf_body_html']);
                            }
						}	// if()
					}	// if()
			break;

		default:
			$CFG['TITLE'] = "<b>편지쓰기</b>";

			// [2012-04-18] 편지목록에서 전달 추가
			if ($_GET['mode'] == 'MULTIFORWARD')
			{
				$CFG['TITLE'] = "<b>편지쓰기</b> >> <b>전달</b>";

				if (!is_array($_POST['cmf']) || sizeof($_POST['cmf']) == 0)
					msg("전달하려는 메일이 존재하지 않습니다.\\n\\n이미 삭제되었을 수 있습니다.");

				if (sizeof($_POST['cmf']) > 100)
					msg("전달하려는 메일은 100통까지만 가능합니다.");

				$_cmf = array();
				for ($i=0; $i<sizeof($_POST['cmf']); $i++)
				{
					if (is_numeric($_POST['cmf'][$i]))
					{
						$_cmf[] = $_POST['cmf'][$i];
					}	// if()
				}	// for()

				if (sizeof($_cmf) > 0)
				{
					$DEBUG['attach_save']['start'] = getmicrotime();
					$sql = "
						SELECT
							mb_id, mf_filename, mf_subject
						FROM
							".$AUTH[auth_m_mf_table]."
						WHERE
							m_no='" . $AUTH['auth_m_no'] . "'
							AND mf_no IN (".implode_keys($_cmf).")
						ORDER BY
							mf_arrival_date DESC
						";
					$rows = db_get_rows($sql);

					if (sizeof($_cmf) != sizeof($rows))
						msg("전달하려는 메일이 존재하지 않습니다.\\n\\n이미 삭제되었을 수 있습니다.");

					$view['forward_attach_add_js'] = '';
					$_mf_attachs_size = 0;
					for ($i=0; $i<sizeof($rows); $i++)
					{

						$mail_file = get_mail_dir().'/'.get_mb_dir($rows[$i]['mb_id']).'/'.$rows[$i]['mf_filename'];
						if (!file_exists($mail_file) || !is_readable($mail_file))
						{
							error("메일 파일이 존재하지 않거나 퍼미션이 잘못되었습니다.\n=> ". $mail_file, 'FILE');
						}	// if()

						$upload_dir = $UPLOAD_DIR[BIGFILE_TMP];
						mkdir_parent($upload_dir);
						$tmp_mail_file = $UPLOAD_ROOT.'/'.$upload_dir.'/'.getmicrotime().'.'.$i.'.'.$rows[$i]['mf_filename'];
						copy($mail_file, $tmp_mail_file);

						// 파일명 길이는 100자로 제한하고, 파일명으로 사용불가한 문자는 제거함.
						$_name = han_substr(file_name_char_limit($rows[$i]['mf_subject']), 100).'.eml';

						$_size = filesize($tmp_mail_file);
						$_tmp_name = basename($tmp_mail_file);

						if (get_activex_use())
						{
							$view['forward_attach_add_js'] .= "attachFileFromMail('" . addslashes($_name) . "', '" . $_tmp_name . "', '" . addslashes($_size) . "');\n";
						} else
						{
							$_mf_attach_name = addslashes($_name);
							$_mf_attachs_size += $_size;
							$_mf_attachs_size_h = filesize_human($_mf_attachs_size);
							$_mf_attach_size = $_size;
							$_mf_attach_size_h = filesize_human($_size);

							if (is_multi_upload())
                            {
	                            $view['forward_attach_add_js'] .= "addAttachSet('" . $_mf_attach_name . "', '" . $_tmp_name . "', '" . $_mf_attachs_size_h . "', '" . $_mf_attachs_size . "', '" . $_mf_attach_size_h . "', '" . $_mf_attach_size . "', '');\n";
                            } else
							{
								$view['forward_attach_add_js'] .= "uploadSuccess('" . $_mf_attach_name . "', '" . $_tmp_name . "', '" . $_mf_attachs_size_h . "', '" . $_mf_attachs_size . "', '" . $_mf_attach_size_h . "', '" . $_mf_attach_size . "', '');\n";
							}
						}	// if()
					}	// for()

					if (get_activex_use())
					{
						if ($view['forward_attach_add_js'] != '')
							$view['forward_attach_add_js'] .= "attachSizeUpdate();\n";
					}	// if()

					$DEBUG['attach_save']['exec'] += getmicrotime() - $DEBUG['attach_save']['start'];

					$_mf_subject = $rows[0]['mf_subject'];
					if (sizeof($_cmf) > 1)
						$_mf_subject.= " 외 ".(sizeof($_cmf) - 1)."건";
					$view['mf_subject'] = input_value('FW: ' . $_mf_subject.' ', 1);

					$view['mf_no_multiforward'] = implode(',', $_cmf);
				}	// if()
			}	// if()


			// [2010-07-09] 모바일에서는 텍스트 모드를 기본값으로 변경.
			if (is_not_default_webeditor())
			{
				$view['mf_content_type'] = 'P';		// 기본모드 텍스트
			} else
			{
				$view['mf_content_type'] = 'H';		// 기본모드 HTML
			}	// if()

			// [2005-09-29] 웹에디터 내용입력란 포커스 문제해결.(줄바꿈 기호 10개 추가)
			// [2006-04-17] 웹에디터 추가(gmeditor)
			if ($G_SYS['WEBEDITOR'] == 'FCK')
				$view['mf_body_html'] = '<br nm="" /><br nm="" /><br nm="" /><br nm="" /><br nm="" /><br nm="" /><br nm="" /><br nm="" /><br nm="" /><br nm="" />';

			// 주소록에서 편지쓰기를 한 경우.
			if (is_array($_GET['chk_ad_no']))
			{
				$_mf_to = '';
				for ($i=0; $i<sizeof($_GET['chk_ad_no']); $i++)
				{
					$_ad = explode('|', $_GET['chk_ad_no'][$i]);
					$_ad_no = addslashes($_ad[1]);
					if (is_numeric($_ad_no))
					{
						$_ad_row = db_get_row("SELECT ad.ad_name, ad.ad_email FROM " . $TB['ADDR_GROUP'] . " adg, " . $TB['ADDR'] . " ad WHERE ad.ad_no='" . $_ad_no . "' AND (adg.m_no='" . $AUTH['auth_m_no'] . "' OR adg.d_no='" . $G['DINFO']['d_no'] . "' )AND adg.adg_no=ad.adg_no");
						if ($i != 0)
							$_mf_to .= ', ';
						$_mf_to .= '"' . htmlspecialchars_fix(addslashes($_ad_row['ad_name'])) . '" <' . htmlspecialchars_fix(addslashes($_ad_row['ad_email'])) . '>';
					}	// if()
				}	// for()
				$view['mf_to'] = $_mf_to;
			} else if (is_array($_GET['chk_m_no']))		// [2008-08-25] 조직도에서 편지쓰기를 한 경우.
			{
				require_once('include/member_group_lib.php');

				if ($G['DINFO']['d_mbrgrp_isuse'] == 'N')
					msg("조직도 사용이 제한되었습니다.\\n\\n관리자에게 문의하여 주십시오.");

				if (member_group_deny_check())
					msg("조직도를 사용할 수 없는 [".$AUTH['auth_mg_name']."]조직입니다.\\n\\n관리자에게 문의하여 주십시오.");

				$_mf_to = '';
				for ($i=0; $i<sizeof($_GET['chk_m_no']); $i++)
				{
					if (is_numeric($_GET['chk_m_no'][$i]))
					{
						$q = "SELECT m_name, m_id FROM " . $TB['MEMBER'] . " WHERE d_no='" . $G['DINFO']['d_no'] . "' AND m_no='" . $_GET['chk_m_no'][$i] . "'";
						$_m_row = db_get_row($q);
						if ($_m_row)
						{
							if ($_mf_to != '')
								$_mf_to .= ', ';
							// [2013-07-12] 이름에 큰 따옴표가 있을 경우 예외 처리
							//$_mf_to .= '"' . htmlspecialchars_fix(addslashes($_m_row['m_name'])) . '" <' . htmlspecialchars_fix(addslashes($_m_row['m_id'].'@'.$G['DINFO']['d_name'])) . '>';
							$_mf_to .= '"' . htmlspecialchars_fix(str_replace('&quot;', '', $_m_row['m_name'])) . '" <' . htmlspecialchars_fix($_m_row['m_id'].'@'.$G['DINFO']['d_name']) . '>';
						}	// if()
					}	// if()
				}	// for()
				$view['mf_to'] = $_mf_to;
			} else if ($_GET['mf_to'])
			{
				$view['mf_to'] = htmlspecialchars_fix(stripslashes($_GET['mf_to']));
			}	// if()

			// [2011-03-11] 서명 위치 변경
			if ($sg_content != '')
			{
				$view['mf_body_text'] .= "\n\n\n".get_sg_content($sg_content, 'P');
				$view['mf_body_html'] .= "<p></p><p></p>".get_sg_content($sg_content, 'H');
			}	// if()
			break;
	}	// switch()

	$upload_max_size_h = filesize_human($G_SYS[UPLOAD_MAIL_MAX_SIZE]);

	// 서명포함
		/* [2011-03-11] 서명 위치 변경
		$sql = "
			SELECT
				sg_no, sg_name
			FROM
				" . $TB['SIGN'] . "
			WHERE
				m_no='" . $AUTH['auth_m_no'] . "'
			ORDER BY
				sg_name
			";
		$sign = db_get_rows($sql);
		$m_sign_default = db_get_one("SELECT m_sign_default FROM " . $TB['MEMBER'] . " WHERE m_no='" . $AUTH['auth_m_no'] . "'");

		$_sign = db_rows_fieldtokey($sign);
		$select_sign = select_list_value($m_sign_default, $_sign['sg_name'], $_sign['sg_no'], lang_conv('사용하지 않음'), 0, 1);
		*/

	// [2006-09-08] 인코딩
		$G_SYS['CHARSETS'] = array(
			'euc-kr' => '한국어(EUC-KR)',
			'utf-8' => '유니코드(UTF-8)',
			'shift-jis' => '일본어(SHIFT-JIS)',
			'gb2312' => '중국어 간체(GB2312)',
			'big5' => '중국어 간체(BIG5)'
			);

		// [2007-11-13] us-ascii 로 선택후 한글을 입력하는 경우 깨지는 문제를 예방함.  기본값은 UTF-8 로 고정.
		// 답장, 전달, 다시보내기시 사용하던 인코딩을 기본으로 선택함.
		$mf_charset_default = $G_SYS['CHARSET'];
		$mf_charset_ori = strtolower(trim($row['mf_charset']));
		if ($mf_charset_ori != '' && $mf_charset_ori != strtolower($G_SYS['CHARSET']))
		{
			// [2007-10-23] 인코딩 선택에 없는 인코딩일 경우 자동추가함.
			if (!in_array($mf_charset_ori, array_keys($G_SYS['CHARSETS'])))
				$G_SYS['CHARSETS'][$mf_charset_ori] = $mf_charset_ori;
		}	// if()
		$view['mf_charset'] = select_list_value($mf_charset_default, array_values($G_SYS['CHARSETS']), array_keys($G_SYS['CHARSETS']), '', 0, 1);

	// [2006-10-30] 메일용량을 초과했을때 '보낸편지함에 저장'을 할 수 없도록 제한함.
		$m_quota = db_get_one("SELECT m_quota FROM " . $TB['MEMBER'] . " WHERE m_no='". $AUTH['auth_m_no'] . "'")*1024;
		$m_quota_view = filesize_human($m_quota, 0);
		$DEBUG['db_mf_size']['start'] = getmicrotime();
		$q_hint = ($G_SYS[DB] == 'oracle') ? "/*+ ORDERED index_asc (".$AUTH['auth_m_mf_table']." MF_".$AUTH['auth_d_no']."_".$AUTH['auth_m_mail_file_group']."_MNO_MBID) */" : "";
		$mf_filesize_sum = db_get_one("SELECT ".$q_hint." SUM(mf_filesize) FROM " . $AUTH['auth_m_mf_table'] . " WHERE m_no='". $AUTH['auth_m_no'] . "'");
		$DEBUG['db_mf_size']['exec'] += getmicrotime() - $DEBUG['db_mf_size']['start'];
		$mf_filesize_view = filesize_human($mf_filesize_sum);


// [2008-01-31] 웹하드의 파일을 첨부하려는 경우.
	$webhard = array();
	$webhard_size = 0;
	if ($_GET['mode'] == 'WEBHARD' && is_array($_POST['cmf']))
	{
		require_once("include/webhard_lib.php");

		for ($i=0; $i<sizeof($_POST['cmf']); $i++)
		{
			// [2009-06-23] 파일 리스트에서 폴더 선택시
			if (is_numeric($_POST['cmf'][$i]))		// folder
			{
				// 공용웹하드 정보확인 및 권한제한
				$ws = webhard_get_share($_POST['cmf'][$i], $ws_key=NULL, 'R');

				// file list
					$q = "
						SELECT
							*
						FROM
							".$TB['WEBHARD_FILE']."
						WHERE
							wfd_key='".$_POST['cmf'][$i]."'
						ORDER BY
							wf_name ASC
						";
					$wf = db_get_rows($q);
					$wf_cnt = sizeof($wf);

					$wf_size_sum = 0;
					for ($j=0; $j<$wf_cnt; $j++)
					{
						$webhard[] = array($wf[$j]['wf_key'], $wf[$j]['wfd_key'], $wf[$j]['wf_name'], $wf[$j]['wf_size']);
						$webhard_size += $wf[$j]['wf_size'];
					}	// for()
			} else		// file
			{
				$ex = explode('|', stripslashes($_POST['cmf'][$i]));
				if ($ex[0] && $ex[1] && $ex[2])
				{
					// 공용웹하드 정보확인 및 권한제한
					$ws = webhard_get_share($ex[1], $ws_key=NULL, 'R');

					$webhard[] = $ex;
					$webhard_size += $ex[3];
				}	// if()
			}	// if()
		}	// for()
	}	// if()
	$webhard_cnt = sizeof($webhard);
	$webhard_size = filesize_human($webhard_size);


// 업로드 용량
	//일반 첨부 제한사이즈.
	$mail_max_size = ceil($G_SYS[UPLOAD_MAIL_MAX_SIZE]/1024/1024);		// MB 단위
	$mail_max_size_view = filesize_human($G_SYS[UPLOAD_MAIL_MAX_SIZE]);

	// 대용량 첨부 제한사이즈
		// 웹메일 대용량첨부 최대용량과 남은용량중 작은 것을 표기함.
		$q = "SELECT m_bigfile_quota FROM ".$TB['MEMBER']." WHERE m_no='".$AUTH['auth_m_no']."'";
		$m_bigfile_quota = db_get_one($q);
		$m_bigfile_quota = $m_bigfile_quota*1024;

		$q = "SELECT ms_bigfile FROM ".$TB['MEMBER_SIZE']." WHERE m_no='".$AUTH['auth_m_no']."'";
		$ms_bigfile = db_get_one($q);

		$bigfile_free_size = $m_bigfile_quota - $ms_bigfile;
		if ($bigfile_free_size < 0)
			$bigfile_free_size = 0;

		// [2025-09-30] 서버 설정의 웹메일 대용량첨부 최대용량보다 크면 웹메일 대용량첨부 최대용량으로 제한하는 부분 수정
//		if ($G_SYS[UPLOAD_MAIL_BIGFILE_MAX_SIZE] <= $bigfile_free_size)
//		{
//			$mail_bigfile_max_size = $G_SYS[UPLOAD_MAIL_BIGFILE_MAX_SIZE];
//		} else
//		{
//			$mail_bigfile_max_size = $bigfile_free_size;
//		}	// if()
		$mail_bigfile_max_size = $bigfile_free_size;

		// [2008-04-04]
		if ($G['DINFO']['d_bigfile_isuse'] != 'Y')
			$mail_bigfile_max_size = 0;

	$mail_bigfile_max_size_view = filesize_human($mail_bigfile_max_size);
	$mail_bigfile_max_size = ceil($mail_bigfile_max_size/1024/1024);		// MB 단위

	// 파일 한개당 제한사이즈
	$mail_max_file_size = ceil($G_SYS[UPLOAD_MAIL_BIGFILE_MAX_SIZE]/1024/1024);		// MB 단위
	$mail_max_file_size_view = filesize_human($G_SYS[UPLOAD_MAIL_BIGFILE_MAX_SIZE]);

	// [2025-10-27] 개인별로 보내기 자동 적용
	$view['personal_auto_apply_count'] = input_value($G_SYS[PERSONAL_AUTO_APPLY_COUNT], 1);

// [2012-09-27] 예약발송
	if ($G_SYS['MAIL_SEND_RESERVE_ISUSE'])
	{
		$q = "SELECT COUNT(*) FROM ".$TB['MAIL_RECEIVE_CHECK']." WHERE mrc_reserve_status='W' AND m_no='".$AUTH['auth_m_no']."'";
		$view['mf_reserve_count'] = db_get_one($q);

		if ($view['mf_reserve_count'] < $G_SYS['MAIL_SEND_RESERVE_LIMIT_SEND'])
		{
			$_time = time();

			$_date = array();
			$_date_key = array();
			// [2015-04] PHP5.4.x대응 대체함수 적용
			#$_date_sp = split("-", date("Y-m-d", $_time));
			$_date_sp = explode("-", date("Y-m-d", $_time));
			$_week_kor = array("일", "월", "화", "수", "목", "금", "토");

			for ($i=0; $i<=$G_SYS['MAIL_SEND_RESERVE_LIMIT_DAY']; $i++)		// 365일 이내에만 예약가능하도록 제한
			{
				$_date_ts = mktime(0, 0, 0, $_date_sp[1], ($_date_sp[2]+$i), $_date_sp[0]);
				$_date_week = date("w", $_date_ts);
				$_date[] =  date("Y-m-d", $_date_ts) . " (" . $_week_kor[$_date_week] . ")";
				$_date_key[] =  date("Y-m-d", $_date_ts);
			}	// for()

			// 약 10분후 시간을 기본으로 선택
			$_select_date = $_time+600;
			$_select_date -= $_select_date%300;

			$view['mf_reserve_date'] = select_list_value(date("Y-m-d", $_select_date), $_date, $_date_key, NULL, 0, 1);

			$_hours = array();
			$_hours_key = array();
			for ($i=0; $i<=23; $i++)
			{
				$_hours[] = $i;
				$_hours_key[] = sprintf('%02d', $i);
			}	// for()
			$view['mf_reserve_time_h'] = select_list_value(date("H", $_select_date), $_hours, $_hours_key, NULL, 0, 1);

			$_minutes = array();
			$_minutes_key = array();
			for ($i=0; $i<=55; $i=$i+5)
			{
				$_minutes[] = $i;
				$_minutes_key[] = sprintf('%02d', $i);
			}	// for()
			$view['mf_reserve_time_m'] = select_list_value(date("i", $_select_date), $_minutes, $_minutes_key, NULL, 0, 1);
		}	// if()
	}	// if()



// skin view
	// [2011-01-10] 히든 프레임을 사용하는 페이지에서만 활성화.
	$G_SYS['NM_HIDDEN_FRAME_ISUSE'] = true;
	// [2025-11-05] 새 창 보여주기
	if ($_GET['window_open'])
	{
		nskinset('webmail', 'mail_write.html', 'window_open');
	} else {
		nskinset('webmail', 'mail_write.html');
	}
	include($NSKIN['view_layout']);

	// [2006-10-30] 메일용량을 초과했을때 '보낸편지함에 저장'을 할 수 없도록 제한함.
		if ($mf_filesize_sum >= $m_quota)
		{
			?>
				<script language="JavaScript">
				<!--
					document.forms.write.is_mail_save.checked=false;
					document.forms.write.is_mail_save.disabled=true;
					alert("메일용량이 허용치인 [<?= $m_quota_view ?>]를 초과했기 때문에 [보낸편지함에 저장]기능은 사용하실 수 없습니다.\n\n새로운 메일을 받을 수 도 없으므로 불필요한 메일을 삭제하여 주시기 바랍니다.");
				//-->
				</script>
			<?
		}	// if()


		if ($webhard_cnt)		// 웹하드에서 첨부한 파일이 있을때
		{
			?>
			<script type="text/javascript">
				<!--
					alert("[웹하드]에서 선택하신 파일 [<?= $webhard_cnt ?>]개가 첨부되었습니다.\n\n다운횟수(<?= $G_SYS[UPLOAD_MAIL_BIGFILE_COUNT] ?>회)와 기간(<?= $G_SYS[UPLOAD_MAIL_BIGFILE_DAY] ?>일)이 제한되어 있으니 유의하시기 바랍니다.");
			   //-->
			</script>
			<?
		}	// if()

	// [2012-10-22] IE 10 fix - ActiveX 미지원하는 Metro 스타일 브라우저에서, ActvieX 가 먼저 로딩될 경우 Text 모드로 전환하는 안내창 보여줌.
	// [2013-10-28] IE 11 fix
	//if (get_activex_use() && strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 10') !== false)
	if (get_activex_use() && (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 10') !== false || (strpos($_SERVER['HTTP_USER_AGENT'], 'Trident') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'rv:11') !== false)))
	{
		?>
			<script language="JavaScript">
			<!--
				if (get_activex_use_support() == false)
				{
					if (confirm("현재 브라우저에서는 ActiveX를 지원하지 않습니다.\n\n업로드 방식을 Text 모드로 전환하시겠습니까?"))
					{
						//mail_write_draft_save(2);

						var expDate = new Date();
						expDate.setDate(expDate.getDate() + 365);
						document.cookie = 'nm_upmode=T;expires='+expDate.toGMTString();

						location.reload();
					}	// if()
				}	// if()
			//-->
			</script>
		<?
	}	// if()


// [2008-02-19] 임시 업로드 디렉토리에서 3시간이 지난 파일은 자동 삭제.
require_once("include/bigfile_lib.php");
bigfile_upload_tmp_del($UPLOAD_DIR[BIGFILE_TMP]);

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