테스트 사이트 - 개발 중인 베타 버전입니다

폼메일 질문드립니다 형님들 ㅠㅠ

우량코린이 4년 전 조회 3,809

</p>

<p><?

if($mode=='mailsend') { // $mode 값이 mailsend 일 경우 아래 내용 실행

 $limit = 5;  // 첨부파일 제한 용량 (단위:MB)</p>

<p> #### 에러 발생시 back("에러문",이동할 페이지수) 함수를 사용하여 에러출력 후 지정한 페이지 수만큼 뒤로 이동함 ###

 function back($str,$no=-1) {

  echo "<script>

    window.alert(\"".$str."\")

    history.go(".$no.")

    </script>

   ";

 }</p>

<p> // $to 값이 공백일 경우 에러출력 후 한페이지 뒤로 이동

 if(!ereg("([^[:space:]]+)",$to)) {

  back("메일을 받는사람의 메일주소가 필요합니다.");

  exit;

 }</p>

<p> // $to 값이 정확한 이메일 주소가 아닐 경우 에러출력 후 한페이지 뒤로 이동

 if(!ereg("([a-zA-Z0-9,_]{2,15})@([a-zA-Z0-9]{2,15}).([a-zA-Z0-9]{2,15})", $to, $regs)) {

  back("받는사람의 Email 주소 형식이 틀립니다. [예] yourmail@server.domain");

  exit;

 }

 // $subject 값이 공백일 경우 에러출력 후 한페이지 뒤로 이동

 if(!ereg("([^[:space:]]+)",$subject)) {

  back("메일 제목이 없습니다. 메일 제목을 입력해 주십시오.");

  exit;

 }</p>

<p> $boundary = "----".uniqid("part"); // 이메일 내용 구분자 설정</p>

<p>## 헤더생성 ##

 $header .= "Return-Path: $from\r\n";    // 반송 이메일 주소

 $header .= "From: $from\r\n";      // 보내는 사람 이메일 주소

 $header .= "MIME-Version: 1.0\r\n";    // MIME 버전 표시

 $header .= "Content-Type: Multipart/mixed; boundary = \"$boundary\"";  // 구분자가 $boundary 임을 알려줌</p>

<p>## 여기부터는 이메일 본문 생성 ##

 $mailbody .= "This is a multi-part message in MIME format.\r\n\r\n";  // 메세지

 $mailbody .= "--$boundary\r\n";               // 내용 구분 시작</p>

<p>//내용이 일반 텍스트와 html 을 사용하며 한글이라고 알려줌

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

//암호화 방식을 알려줌

 $mailbody .= "Content-Transfer-Encoding: base64\r\n\r\n";

//이메일 내용을 암호화 해서 추가

 $mailbody .= base64_encode(nl2br($body))."\r\n\r\n";</p>

<p>## 첨부 파일 개수만큼 루프를 돌면서 본문에 추가함 ##

 for($i=0;$i<count($userfile);$i++) {

  if($userfile[$i]) {

 // $limit 으로 설정한 용량 보다 클경우 에러 출력 후 뒤로 이동

   if($userfile_size[$i] > ($limit * 1024 * 1024)) {

    back(($i+1)."번째 첨부파일이 제한용량(".$limit."MB)을 초과하였습니다.");

    exit;

   }</p>

<p>   $filename = basename($userfile_name[$i]);  // 파일명만 추출 후 $filename에 저장

   $fp = fopen($userfile[$i], "r");     // 파일 open

   $file = fread($fp, $userfile_size[$i]);  // 파일 내용을 읽음

   fclose($fp);           // 파일 close</p>

<p>   // 파일첨부파트

   $mailbody .= "--$boundary\r\n";     // 내용 구분자 추가

 // 여기부터는 어떤 내용이라는 것을 알려줌

   $mailbody.= "Content-Type: ".$userfile_type[$i]."; 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";

  }

 }</p>

<p>/*

위에서 생성된 $header 와 $mailbody 를 mail() 함수를 이용해서 $to 에게 보냄

만약 메일 전송 실패시 에러출력 후 첫화면으로 이동

*/

 if(!mail($to,addslashes($subject),$mailbody,$header)) back("이메일 발송해 실패 하였습니다.");

 else echo "<script>alert('메일을 발송하였습니다.');location.replace('?');</script>";</p>

<p>

// 아래 html 의 경우 특별히 설명이 필요 없을 듯 하네요...^^

} else {  // $mode 값이 mailsend 가 아닐경우 아래 내용 실행

?></p>

<p>

<table border="0" width="600">

<form method="post" name="form" enctype="multipart/form-data" action="">

<input type=hidden name="mode" value="mailsend">

   <tr>

  <td width="200" bgcolor="#5584AA"><p align="center">받는사람  Email</td>

  <td><p><input type="text" name="to" size="30"></td>

 </tr>

 <tr>

  <td width="200" bgcolor="#5584AA"><p align="center">보내는사람 Email</td>

  <td><p><input type="text" name="from" size="30"></td>

 </tr>

 <tr>

  <td width="200" bgcolor="#5584AA"><p align="center">제 목</td>

  <td><p><input type="text" name="subject" size="50"></td>

 </tr>

 <tr>

  <td width="200" bgcolor="#5584AA"><p align="center">내 용</td>

  <td><p><textarea name="body" rows="10" cols="55"></textarea>

 </tr>

 <tr>

  <td width="200" bgcolor="#5584AA"><p align="center">첨 부</td>

  <td>

   <p><input type="file" name="userfile[]" size="30">


   <input type="file" name="userfile[]" size="30">


   <input type="file" name="userfile[]" size="30">


   <input type="file" name="userfile[]" size="30">


   <input type="file" name="userfile[]" size="30">

  </td>

 </tr>

 <tr>

  <td colspan=2 align=center>


   <input type="submit" name="send" value="편지보내기">

   <input type="reset" name="cancel" value="내용지우기">

  </td>

 </tr>

</form>

</table></p>

<p><?

}

?></p>

<p>

 

제가 이 소스 이용해서 인덱스페이지에서 폼메일을 사용하려고 하는데요 받는사람 이메일을 저기에 기입할 필요없이 제 이메일로 고정시키려면 코드를 어떻게 써야하나요 ㅠㅠ? 알려주시면 감사하겠습니다 아니면 힌트라도 주시면 감사합니다 형님들

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

답변 1개

cuwaaang
4년 전

받는사람이메일 input을 hidden으로 value에 고정값넣어두시면될듯

로그인 후 평가할 수 있습니다

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

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

로그인