묻고답하기

안녕하세요

전 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 남기남
사랑해요비타민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
mimiapy 모바일 페이지 안나오게 하려면 어떻게 하나요?(기가 막힌 방법으로 해결했네요) [2] 2016.09.03 by 함성미
lark007 게시판 게시물 등록시 관리자 메일 발송이 제대로 안되네요ㅠ [3] file 2016.09.03 by sejin7940
moltoband 내가 만든 동영상을 스마트폰으로 볼 수 있는 방법이있을까요  
플레이닷컴 첫 닷홈 호스팅 후 인덱스 페이지 오류 [1] 2016.09.03 by 銀童
펭구 페이스북 공유하기(제발좀 도와주세요.. 몇일째 컴만보는중)  
주피터bff66 document.item.php 이 메소드를 다른 화일에서 불러오려면 어떠한 방법으로 해야 할까요? [4] 2016.09.02 by 주피터bff66
별을찾는광부 진짜 이거 아무도 모르나요? [8] 2016.09.02 by 댑펑
똑디 게시판 사용자정의에서 주소입력시...  
김김김87 안녕하세요 메뉴 접는방법 혹 아시는분계실까요.. [1] 2016.09.02 by 김김김87
YoonNet php 버전업 이후 XE 1.4로 만든 홈페이지가 하얗게 뜨는데요... [2] 2016.09.02 by YoonNet
탱탱구리 홈페이지 관련문의 [1] 2016.09.02 by BRANDYK
네모세상 뷰어로 보기 - 더 넓게 볼 수 있을까요?  
달의소년 게시판 글쓰기시 '잘못된 요청입니다.' 라고 뜹니다.