묻고답하기

안녕하세요

전 html이랑 css정도만 읽을 줄 아는 초보인데, 검색해보니 php파일을 수정해야 하는것 같아서 도움을 요청합니다.

어느 분이 블로그(http://likeme.pe.kr/145)에서 제공해주신 익스텐션 프로그램(SupportFormCreator.mxp)으로 폼메일을 만들었는데요

다른건 다 괜찮은데 메일이 도착하면(한메일) 본문이외에 이름, 제목등 한글로 써져야 하는 부분이 깨져서 들어옵니다. 본문내용은 한글로 잘 나오구요,

제가 테스트한다고 했을 때 영어로만 보내봐서 뒤늦게 알게 됐거든요 영어로는 잘 나옵니다.

html파일은 <meta charset="UTF-8">로 작성했습니다

javascript랑 php를 읽을 줄을 몰라서 다른 질문들을 참고해서는 수정을 할 수가 없습니다 ㅠㅠ

 

익스텐션을 써서 만들어진 php파일 코드입니다. 길어서 죄송합니다. 부디 어디를 고치면 될지 아시는 분은 답변 부탁드립니다!!

<?
// SMTP Params
global $gSMTPServer, $gSMTPLogin, $gSMTPPassword, $gEmailto, $gTestCaptcha, $gOKMessage;
$gSMTPServer = "";
$gSMTPLogin = "";
$gSMTPPassword = "";
$gEmailto = "qdesign@hanmail.net";
$gTestCaptcha = false;
$gOKMessage = "Success! Your Email has been sent.";
?>
<?
  session_start();
    function ShowMessage($msg) {
        echo '<div align="center">';
        echo $msg;
        echo '<br><br><a href="javascript: history.back()"><- Go to previous page></a>';
        echo '</div>';
    }

    function ShowMessageRef($msg) {
        echo '<div align="center">';
        echo $msg;
        echo '<br><br><a href="'.$_SERVER['HTTP_REFERER'].'"><- Go to previous page></a>';
        echo '</div>';
    }
    
    function SMTPmail($server, $login, $password, $emailto, $subject, $message, $from) {
        function get_data($smtp_conn)
        {
          $data="";
          while($str = @fgets($smtp_conn,515)) 
          {
            $data .= $str;
            if(substr($str,3,1) == " ") { break; }
          }
          return $data;
        }    

        $headers = "To: $emailto\nFrom: $from\nSubject: $subject\nX-Mailer: The Bat! (v3.99.3) Professional\n";
        $smtp_conn = @fsockopen($server, 25, &$errno, &$errstr, 30);
        if (!$smtp_conn) {
            return "Server $server. Connection failed: $errno";
        }
        $data = get_data($smtp_conn); 
        
        $serverdomainarray = explode('.', $server);
        $serverdomainarraycount = count($serverdomainarray);
        $serverdomain = $serverdomainarray[$serverdomainarraycount - 2].".".$serverdomainarray[$serverdomainarraycount - 1];
        
        fputs($smtp_conn,"HELO $serverdomain\r\n");
        $data = get_data($smtp_conn);
        if($data != 250) {fclose($smtp_conn); return 'SMTP server HELO command error.';}
        
        fputs($smtp_conn,"AUTH LOGIN\r\n");
        $data = get_data($smtp_conn);
        if($data != 334) {fclose($smtp_conn); return 'SMTP server AUTH command error.';}
        
        fputs($smtp_conn,base64_encode($login)."\r\n");
        $data = get_data($smtp_conn);
        if($data != 334) {fclose($smtp_conn); return 'SMTP server login failed.';}
        
        fputs($smtp_conn,base64_encode($password)."\r\n");
        $data = get_data($smtp_conn);
        if($data != 235) {fclose($smtp_conn); return 'SMTP server incorrect password.';}

        fputs($smtp_conn,"MAIL FROM: $login@$serverdomain\r\n");
        $data = get_data($smtp_conn);
        if($data != 250) {fclose($smtp_conn); return 'SMTP server MAILFROM command error.';}
        
        fputs($smtp_conn,"RCPT TO: $emailto\r\n");
        $data = get_data($smtp_conn);
        if($data != 250) {fclose($smtp_conn); return 'SMTP server RCPT TO command error.';}
    
        fputs($smtp_conn,"DATA\r\n");
        $code = substr(get_data($smtp_conn),0,3);
        if($code != 354) {fclose($smtp_conn); return 'SMTP server DATA sending error.';}

        fputs($smtp_conn,$headers."\r\n".$message."\r\n.\r\n");
        $code = substr(get_data($smtp_conn),0,3);
        if($code != 250) {fclose($smtp_conn); return 'SMTP server HEADER sending error.';}

        fputs($smtp_conn,"\n.\nQUIT\n");
        $data = get_data($smtp_conn);
        fclose($smtp_conn);
        return 'OK';
    }
    
    // PHPMailer
    function CallPHPMailer($sendmethod) {
        global $gTestCaptcha;
        if (($gTestCaptcha == true)&&(empty($_POST['captcha']) || ($_POST['captcha'] != $_SESSION['random_number']))) {
            ShowMessage('ERROR!<br>Verification code is incorrect.');
            exit();
        }        
        if (empty($_POST['cname'])) {
            ShowMessage('ERROR!<br>Enter correct name.');
            exit();
        }
        if (empty($_POST['email']) || !preg_match("/^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$/", $_POST['email'])) {
            ShowMessage('ERROR!<br>Enter correct email.');
            exit();        
        }
        
        $cname = substr($_POST['cname'], 0, 50);
        $cname = trim($cname);
        $cname = htmlspecialchars(stripslashes($cname));        
        $email = substr($_POST['email'], 0, 50);
        $email = trim($email);
        $email = htmlspecialchars(stripslashes($email));            
        $subject = substr($_POST['subject'], 0, 50);
        $subject = trim($subject);
        $subject = htmlspecialchars(stripslashes($subject));                
        $message = substr($_POST['message'], 0, 4096);
        $message = trim($message);
        $message = htmlspecialchars(stripslashes($message));            
        
        global $gSMTPServer, $gSMTPLogin, $gSMTPPassword, $gEmailto, $gOKMessage;
        if ($sendmethod == 'sendmail') {
            if (mail($gEmailto, $subject, $message, 'From: "'.$cname.'" <'.$email.'>')) {
                ShowMessageRef($gOKMessage);
            } else {
                ShowMessageRef('Error during message sending.');
            }
        } else if ($sendmethod == 'SMTP') {
            $result = SMTPmail($gSMTPServer, $gSMTPLogin, $gSMTPPassword, $gEmailto, $subject, $message, 'From: "'.$cname.'" <'.$email.'>');
            if ($result == 'OK') {
                ShowMessageRef($gOKMessage);                
            } else {
                ShowMessageRef($result);
            }
        }
    }
    
    // AjaxMailer
    function CallAJAXMailer($sendmethod) {    
        function MakeExit($vsStatus, $vsErrors) {
            header('Content-Type: text/xml');
            echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';

            echo '<resultset>';
            echo '<status>'.$vsStatus.'</status>';
            if ($vsErrors <> '') {
                echo '<errors>'.$vsErrors.'</errors>';
            }
            echo '</resultset>';    
            exit();
        }
            
        function cleanPosUrl ($str) {
            $nStr = $str;
            $nStr = str_replace("**am**","&",$nStr);
            $nStr = str_replace("**pl**","+",$nStr);
            $nStr = str_replace("**eq**","=",$nStr);
            return stripslashes($nStr);
        }

        $cname = substr(cleanPosUrl($_POST['posName']), 0, 50);
        $cname = trim($cname);
        $cname = htmlspecialchars(stripslashes($cname));        
        $email = substr(cleanPosUrl($_POST['posEmail']), 0, 50);
        $email = trim($email);
        $email = htmlspecialchars(stripslashes($email));            
        $subject = substr(cleanPosUrl($_POST['posSubject']), 0, 50);
        $subject = trim($subject);
        $subject = htmlspecialchars(stripslashes($subject));                
        $message = substr(cleanPosUrl($_POST['posMessage']), 0, 4096);
        $message = trim($message);
        $message = htmlspecialchars(stripslashes($message));    
        $captcha = substr(cleanPosUrl($_POST['posCaptcha']), 0, 50);
        $captcha = trim($captcha);
        $captcha = htmlspecialchars(stripslashes($captcha));        
        
        $posErrors = '';
        
        global $gTestCaptcha;
        if (($gTestCaptcha == true)&&(empty($captcha) || ($captcha != $_SESSION['random_number']))) {
            $posErrors .= '<li>Verification code is incorrect!</li>';
            $posErrors = '<![CDATA['.$posErrors.']]>';
            MakeExit('CAPTCHAERROR', $posErrors);
        }    
        
        if (empty($cname)) {
            $posErrors .= '<li>Enter correct name</li>';
        }
        if (empty($email) || !preg_match("/^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$/", $email)) {
            $posErrors .= '<li>Enter correct email</li>';    
        }
        
        if ($posErrors <> '')
            $posErrors = '<![CDATA['.$posErrors.']]>';
        
        if ($posErrors <> '') 
            MakeExit('ERRORS', $posErrors);
        
        global $gSMTPServer, $gSMTPLogin, $gSMTPPassword, $gEmailto;        
        if ($sendmethod == 'sendmail') {
            if (mail($gEmailto, $subject, $message, 'From: "'.$cname.'" <'.$email.'>')) {
                MakeExit('OK', '');
            } else {
                MakeExit('NOTOK', '');
            }
        } else if ($sendmethod == 'SMTP') {
            $result = SMTPmail($gSMTPServer, $gSMTPLogin, $gSMTPPassword, $gEmailto, $subject, $message, 'From: "'.$cname.'" <'.$email.'>');
            if ($result == 'OK') {
                MakeExit('OK', '');    
            } else {
                MakeExit('ERRORS', '<![CDATA[<li>'.$result.'</li>]]>');
            }
        }                
    }
    
    // Main
    if (isset($_GET['action'])) 
        if ($_GET['action'] == 'getCaptcha') {
            header('Pragma: no-cache');
            header('Expires: -1');
            header('Cache-control: no-cache');
            $_SESSION['random_number']=rand(1000, 9999);
            $number=$_SESSION['random_number'];
            header ("Content-type: image/png");
            $im = @imagecreatetruecolor(60, 19)
                     or die("Cannot Initialize new GD image stream");
            $text_color = imagecolorallocate($im, 199, 224, 212);
            $text_color1 = imagecolorallocate($im, 0, 0, 0);
            $background = imagecolorallocate($im, 121, 179, 11);
            $e=imagefilledrectangle ( $im, 0, 0,100, 50, $background);
            imagestring($im, 8, 2, 2,  $number, $text_color);
            imagestring($im, 8, 4, 4,  $number, $text_color1);
            imagegif($im);
            imagedestroy($im);    
            exit();
    }
    if (isset($_GET['tech']) && isset($_GET['method'])) {
        if ($_GET['tech'] == 'php') {
            CallPHPMailer($_GET['method']);
        } else if ($_GET['tech'] == 'ajax') {
            CallAJAXMailer($_GET['method']);
        }
    }
?>

글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
mkp9**** 새로운 게시판이 올라 올 경우 선택적 메일을 보내는 기능 [3] 2016.09.06 by sejin7940
스마일맨 정말 답답합니다. [4] 2016.09.06 by 스마일맨
lifema**** 게시판에서 검색 버튼 활성화 방법 문의드립니다. [4] file 2016.09.05 by lifema****
기서피 누리고 메일인증 가입에서 mypage 그림x나오는 현상입니다.. file  
포천은 문의좀 드립니다. [2] 2016.09.05 by 포천은
너구리리 글 복사시 xe알림센터lite에서 울리는 알림도 복사되는 현상  
nr232**** php.ini를 손 봤음에도 불구하고 input size over than config in php.ini 에러가 뜹니다. file  
아스마 sejin7940 님의 조회수 기능 확장 에드온 에러 해결법 아시는분 계시나요? file  
엔젤킬러 과거 XE core 버전은 어디서 구할수 있을까요? [1] 2016.09.05 by 엔젤킬러
알콜리즘 하나의 게시판 db 로 두개의 리스트 [1] 2016.09.05 by HowtoXE
곰탱이vv 특정 값입력시 반응이 없습니다 [1] 2016.09.05 by HowtoXE
오락실주인 네이버 애널리틱스 스크립트 어디에 넣어요 ? [1] file 2016.09.05 by HowtoXE
승주짱 로그인 문제 도와주세요 [1] 2016.09.05 by HowtoXE
사랑해요비타민C site rss와 site atom이 같이 있어도 되는지 궁금합니다 [2] 2016.09.05 by 사랑해요비타민C
scfree**** 기본 url이 설정이 안되었다고 합니다 [2] 2016.09.05 by scfree****
새양 msg_make_directory_failed 해결법!! [1] 2016.09.05 by J.LAB
토시량 레이아웃이나 기타 위젯,모듈 제작 시 무료배포된것들 기반으로 제작해서 판매해도 되나요? [1] file 2016.09.05 by J.LAB
마꼬꼬 마리아DB (mysql)에서 에러로그 설정 [2] 2016.09.04 by 마꼬꼬
thdwjdtjr FTP 저장시 "553 Could not create file" 오류메세지가 [4] 2016.09.04 by thdwjdtjr
쏭박 로그인을해도 로그인이 안되고 또 어쩔땐 되고 먹통이네요 고수님들 도움부탁드려요 [4] 2016.09.04 by 주니89344