묻고답하기

1. 현재 contact us를 사용하고 있는데... 이곳에서 첨부파일 기능을 추가할 수 있는지 궁금하네요..



2. 만약 첨부파일 기능이 되지 않는다면.. 새로운 폼메일을 구축하려고 하려고 하거든요

인터넷에서 첨부파일이 가능한 폼메일 구하였는데.. 항목을 추가하려고 하니 계속 에러가 나서

어떻게 해야하는지 궁금해서 문의합니다.
--------------------------------------------------------------------
현재 초기상태는 http://ams2682.cafe24.com/mailform.html  이렇게 되어있어요

간략하게 소개를 하자면.. 
mailform.html에서 메일의 내용과 값을 입력받은후
mail.php 에서 실제 처리를 하는 방식입니다.
--------------------------------------------------------------------
[현재 모습]
 

[변경하고 싶은 모습]

------------------------------------------------------------------------------
mailform.html

<html>
<head>
<title>www.webmadang.net</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<style type="text/css">
<!--
td {  font-family: "굴림"; font-size: 9pt}
.box {  font-family: "굴림"; font-size: 12px; border-style: solid; border-top-width: 1px; border-right-width: 1px; border-bott2006-08-01om-width: 1px; border-left-width: 1px}
-->
</style>
<script language="javascript">
<!--
function initForm(frm)
{
   frm.mailTo.value = "";
   frm.mailFrom.value = "";
   frm.fromName.value = "";
   frm.title.value = "";
   frm.content.value = "";
   frm.upfile.select();            
   document.selection.clear(); 
   frm.mailTo.focus();
}

function checkForm(frm)
{
  var Filter = /(\S+)@(\S+)\.(\S+)/ 
    
  if( !frm.mailTo.value.match(Filter))
  { 
    alert("유효하지 않은 이메일주소 입니다");
frm.mailTo.focus();
return;
  }

  if( !frm.mailFrom.value.match(Filter))
  { 
    alert("유효하지 않은 이메일주소 입니다");
frm.mailFrom.focus();
return;
  }

  if( !frm.fromName.value )
  {
    alert("보내는 분의 이름 또는 정보를 입력해 주세요");
frm.fromName.focus();
return;
  }

  if( !frm.title.value )
  {
    alert("메일의 제목을 입력해 주세요");
frm.title.focus();
return;
  }

  if( !frm.content.value )
  {
    alert("메일의 내용을 입력해 주세요");
frm.content.focus();
return;
  }


  frm.action = "mail.php";
  frm.submit();

}
//-->
</script>
</head>
<body>
<form name="form" method="post" enctype="multipart/form-data">
<table width="600" border="1" cellspacing="1" cellpadding="0">
  <tr> 
    <td width="150">받는사람(to)</td>
    <td width="457"><input type="text" name="mailTo" size="60"></td>
  </tr>
  <tr> 
    <td width="134">보내는사람(from)</td>
    <td width="457"><input type="text" name="mailFrom" size="60"></td>
  </tr>
  <tr> 
    <td width="134">보내는사람 이름(name)</td>
    <td width="457"><input type="text" name="fromName" size="60"></td>
  </tr>
  <tr> 
    <td>제목(title)</td>
    <td><input type="text" name="title" size="60"></td>
  </tr>
  <tr> 
    <td>내용(content)</td>
    <td><textarea name="content" cols="58" rows="10"></textarea></td>
  </tr>
  <tr> 
    <td>파일(upfile)</td>
    <td><input type="file" name="upfile" size="50"></td>
  </tr>
  <tr> 
    <td colspan="2" align="center"><input type="button" name="send" value="메일발송" onClick="checkForm(this.form);">&nbsp;
      <input type="button" name="init" value="초기화" onClick="initForm(this.form);"></td>
  </tr>
</table>
</form>
</body>
</html>

------------------------------------------------------------------------------
mail.php

<?
// 폼에서 넘어오는 값들
//-- $mailTo : 수신자 이메일주소
//-- $mailFrom : 송신자 이메일주소
//-- $fromName : 송신자명 또는 정보
//-- $title    : 메일제목
//-- $content  : 메일내용
//-- $upfile   : 첨부파일명
//*******************************


 $boundary = "----" . uniqid("part"); // 구분자 생성
 
 // --- 헤더생성 --- //
 $header  = "Return-Path: $mailFrom\r\n";                             // 반송 이메일 주소
 $header .= "from: $fromName <$mailFrom>\r\n";                        // 송신자명, 송신자 이메일 주소

 // --- 첨부화일이 있을경우 --- //
 if($upfile && $upfile_size) {
 $filename=basename($upfile_name); // 파일명 추출
 $fp = fopen($upfile,"r"); // 파일 열기
 $file = fread($fp,$upfile_size); // 파일 읽기
 fclose($fp);  // 파일 닫기
 if ($upfile_type == ""){
  $upfile_type = "application/octet-stream";
 }

 // --- 헤더작성 --- //
 $header .= "MIME-Version: 1.0\r\n";                                  // MIME 버전 표시
 $header .= "Content-Type: Multipart/mixed; boundary=\"$boundary\"";  // 구분자 설정, Multipart/mixed 일 경우 첨부화일

 // --- 이메일 본문 생성 --- //  
 $mailbody = "This is a multi-part message in MIME format.\r\n\r\n";
 $mailbody .= "--$boundary\r\n";
 $mailbody .= "Content-Type: text/html; charset=euc-kr\r\n";
 $mailbody .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
 $mailbody .= nl2br(addslashes($content)) . "\r\n";
 
 // --- 파일 첨부 ---//  
 $mailbody .= "--$boundary\r\n";  
 $mailbody .= "Content-Type: ".$upfile_type."; name=\"".$filename."\"\r\n";   // 내용
 $mailbody .= "Content-Transfer-Encoding: base64\r\n"; // 암호화 방식  
 $mailbody .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n"; // 첨부파일인 것을 알림
 $mailbody .= base64_encode($file)."\r\n\r\n";  

 $mailbody .= "--$boundary--";  //내용 구분자 마침
 } else {
    // --- 헤더작성 --- //  
    $header .= "MIME-Version: 1.0\r\n";  
    $header .= "Content-Type: Multipart/alternative; boundary = \"$boundary\"";  

    // --- 이메일 본문 생성 --- //
    $mailbody = "--$boundary\r\n";  
    $mailbody .= "Content-Type: text/html; charset=euc-kr\r\n";
    $mailbody .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
    $mailbody .= nl2br(addslashes($content)) . "\r\n";
  
    $mailbody .= "--$boundary--\r\n\r\n";  

 $result = mail($mailTo,$title,$mailbody,$header);
 if($result){
 echo "메일 전송에 성공하였습니다.";
 }else  {
 echo "메일 보내기 실패";
 }

?>

글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
메테워 회원그룹이 아닌 레벨에 따른 제한2 [1] 2013.01.26 by 송동우
MOA철 게시판 하나만 기본 영문으로 표시하는 방법이 있을까요? [1] 2013.01.26 by 송동우
유유히 등록일 검색이 안돼요  
다크아콘 NGINX 에서 / 말고 /xe/ 같은 하위폴더에서 rewrite_mod 를 사용하고 싶습니다. file  
koreafeel 링크 관련질문  
노튼 댓글 작성할때 다른값도 받을 수 있나요?  
겨랑내 버튼 질문 좀 할께요. [1] 2013.01.26 by 겨랑내
Seowoooo xe_official_v2 레이아웃 수정중인데요 서브메뉴바 위치 ㅠㅠ [2] 2013.01.26 by Seowoooo
무도사랑 게시판 삭제시 포인트 차감.. [2] 2013.01.26 by 송동우
봉미선 xe에서 제로보드4로 다운그레이드 할수도있어요?.. [1] 2013.01.26 by KANTSOFT
hopelex 관리자 페이지에 문제가 생겼는데 해결을 못하겠습니다. [1] 2013.01.26 by Firstlove
Stylews 답답합니다..도움좀주세요 ㅠㅠ [3] 2013.01.26 by Firstlove
본체 헐 갑자기 제어판에서 메뉴가 일부 사라졌습니다. [5] 2013.01.25 by 윈컴이
XE만세 로그인 유지가 되지 않습니다..  
메이크디아이와이 본문의 형식을 바꿀수 있는지요? [1] 2013.01.25 by 송동우
화랑529 혹시 이런 것도 가능한가요 ? [사진첨부] [1] file 2013.01.25 by 김개발
hoyeop 베스트 게시물 이동 관련 질문입니다.  
pefn1 확장변수 폼에 html 태그 사용하기 다시 질문드립니다 [2] 2013.01.25 by 송동우
인내심 스케치북 모바일 레이아웃에서 이미지 첨부시 태그로나옵니다. file  
alchemist 전체적인 폰트 관련해서 질문드립니다  
ytchoi xe 모듈을 그림1처럼 업데이트 하니까 file  
apjsapap 한글로 검색이 안됩니다 ㅠㅠ  
가스통 모바일에서 보면 표로 만든 것들이 한 화면에 안들어오고....... [1] 2013.01.25 by 송동우
csweb 음 다른게 아니라 소셜로그인에 대하여 질문이 있습니다.  
흰색앵초 포인트의 캐시파일이 어디에 위치하는지 알고 싶습니다. [1] 2013.01.25 by 송동우
겨랑내 게시판 본문에 "이 게시물을" 하고 인쇄 스크랩 등 [1] 2013.01.25 by 송동우
본눙이 게시판 모듈 설치  
뽕자 갤러리 본문 속 갤러리 목록 안보이게 하는 법 file  
하늘바람23 게시판 글 등록시 관리자 외 특정사용자에게 이메일 발송 [1] 2013.01.25 by 송동우
별초보.. CafeXE 삭제하고 싶은데 안되네요.