채택완료

폼메일 한글깨짐 문의드려요~

2017-12-18 (월) 10:48:23 2,628

폼메일로 문의글 받으려고 하는데요 ㅜㅜ

왜 메일에서 받으면 한글이 깨져 보이는거죠? ㅜㅜ

아래 보고 문제점좀 알려주시면 감사하겠습니다.

그리거 스팸으로 들어가는데 이유좀 알수 있을까요?

<?
header("Content-type: text/html; charset=utf-8");
$up_dir = "./upload";   // 기본 업로드 폴더

$cname = $_POST['cname'];
$fromName = $_POST['cname'];
$choice = $_POST['choice'];
$tel1 = $_POST['tel1'];
$tel2 = $_POST['tel2'];
$tel3 = $_POST['tel3'];
$fromMail = $_POST['email'];
$subject = '진료문의';
$content = $_POST['content'];

$mailTo = "[email protected]";

// 구분자 생성
$boundary = "----" . uniqid("part");

// HEADER 생성
$header  = "";
$header .= "Return-Path: $fromMail\r\n";   // 반송 메일 주소
$header .= "from: ".$fromName." <$fromMail>\r\n"; // 보내는 사람 이름, 메일주소

// 첨부파일이 있는 경우
if(isset($_FILES['upfile']['tmp_name']) && $_FILES['upfile']['tmp_name']){
    $file_name = time() . "_" . $_FILES['upfile']['name'];
    $ext = strtolower(substr($file_name, (strrpos($file_name, '.') + 1)));
 
    $save_dir = sprintf('%s/%s', $up_dir, $file_name);
    $save_url = sprintf('%s/%s', $up_url, $file_name);
 
    move_uploaded_file($_FILES["upfile"]["tmp_name"],$save_dir);
}

// HEADER 작성
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: Multipart/alternative; boundary = \"$boundary\"";

// 메일 내용
$mailcontent  = "";
$mailcontent .= "<table width='700' cellpadding='0' cellspacing='0' style='border:1px solid #cccccc;'>";
$mailcontent .= "<tr><td height='30' bgcolor='#f0f0f0' align='left'>&nbsp;&nbsp;이름</td><td width='600'>&nbsp;&nbsp;".$fromName."</td></tr>";
$mailcontent .= "<tr><td height='30' bgcolor='#f0f0f0' align='left'>&nbsp;&nbsp;이벤트</td><td width='600'>&nbsp;&nbsp;".$choice."</td></tr>";
$mailcontent .= "<tr><td colspan='2' style='height:1px;background:#ccc;'></td></tr>";
$mailcontent .= "<tr><td height='30' bgcolor='#f0f0f0' align='left'>&nbsp;&nbsp;전화번호</td><td width='600'>&nbsp;&nbsp;".$tel1."-".$tel2."-".$tel3."</td></tr>";
if($file_name){
 $mailcontent .= "<tr><td colspan='2' style='height:1px;background:#ccc;'></td></tr>";
 $mailcontent .= "<tr><td height='30' bgcolor='#f0f0f0' align='left'>&nbsp;&nbsp;첨부파일</td><td width='600'>&nbsp;&nbsp;<a href='http://chubascocompany.com/web/upload".$file_name."'>".$file_name."</a></td></tr>";
}
$mailcontent .= "</table>";

// 본문
$mailbody  = "";
$mailbody .= "--$boundary\r\n";
$mailbody .= "Content-Type: text/html; charset=euckr\r\n";
$mailbody .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
$mailbody .= nl2br($mailcontent) . "\r\n";

$mailbody .= "--$boundary--\r\n\r\n";

$result = mail($mailTo,$subject,$mailbody,$header);

if($result){
 $msg = "상담신청완료,  감사합니다. 확인후 연락드리겠습니다. ";
  //$msg = iconv("ANSI","utf-8",$msg);
 //$msg = iconv("UTF-8", "EUC-KR", $msg);
 //echo $msg;
 //exit;
 //$encoding = mb_detect_encoding($msg,array("UTF-8","EUC-KR"));

 //echo $encoding;
 //exit;

 echo "<script>
  alert('".$msg."');
  history.back(-1);
  </script>";
}
else {
 $msg = "메일 보내기 실패, 고객센터로 문의 주시기 바랍니다.";
 //$msg = iconv("utf-8","euc-kr",$msg);
 
 echo "<script>
  alert('$msg');
 history.back(-1);
  </script>";
}
?>

|

답변 2개 / 댓글 1개

채택된 답변
+20 포인트

일단은 현재 php 문서 파일을 저장할때 UTF-8로 저장했는지 확인하시고요.

소스 중에서는

$mailbody .= "Content-Type: text/html; charset=euckr\r\n";

부분을

$mailbody .= "Content-Type: text/html; charset=utf-8\r\n";

로 변경해 보시고요.

현재 사이트가 웹호스팅을 받고 있는 사이트라면 업체에 확인해 보시고요.

개인 컴퓨터에서 도메인을 운영하신다면

화이트 도메인으로 추가해서 스팸으로 처리되는 것을 막아야 할 겁니다.

화이트 도메인 추가는 아래의 링크를 참조하세요.

http://ooz.co.kr/1

메일 한글깨지는 문제는 인코딩 문제로 보여지며

스팸으로 가는이유는 화이트도메인을 등록해 주셔야 합니다.

답변에 대한 댓글 1개

여기서 제목을 추가하려면 어떻게 해야되나요?

답변을 작성하려면 로그인이 필요합니다.