하얀늑대 :: 하얀늑대의 일상
bloghome Tags |  Guestbook | 
  Tags
카운터 즐겨찾기 환생 비즈니스모델 미용 전화걸기 웹사이트 조개구이 애완 홍보 웹사이트구축 우울증 new 팝업 다운로드 이글루스 따뜻한 세상 실명 분산서버 Rss
banner
하얀늑대 ::
하얀늑대의 일상

Google
내블로그에서 검색
 하얀늑대는?
 Category
allow  모두보기 (275)
spacespace Today Story's (11)
spacespace 핫이슈 (19)
spacespace 디카질 (4)
spacespace Javascript (15)
spacespace 2000 server (9)
spacespace 2003 server (3)
spacespace 리눅스 (3)
spacespace UCC (6)
spacespace 컴퓨터 Tip (15)
spacespace IT news (65)
spacespace 웹 접근성 (3)
 Tags
고양이 웹 접근성 패션 php SK커뮤니케이션즈 박지성 전화걸기 주민등록번호 체크 웹로직 블루레이 mysql phpMyAdmin 닥스훈트 핸드폰 웹2.0 월드컵 컨텐츠 데이트 사진 즐겨찾기
  Calendar
<< 2012 May >>
S M T W T F S
29 30 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 1 2
 New Post
line 중국 오픈마켓 시장 진출
line 중국 오픈마켓 시장 진출
line 중국 인터넷 시장의 국제화
line 중국 인터넷 쇼핑몰 시장의
line 중국 인터넷, 바이러스 마
 New Comment
lineselee2000 : 10/10/27
reply멋진데요.
line클럽4242 : 10/08/26
reply사랑에상처는 사랑으로 치
linesusanna : 08/11/07
replyhey,find <a href=http:
line하얀늑대 : 08/05/22
reply위에 페이지는 한페이지 내
line아아아 : 08/04/26
reply개새끼는너야
 New Tracbacks
lineWeb 1.0 과 Web 2.0
line06/11/18
line괴물 - 2006. 7. 28.
line06/07/29
 New Archive
2011 April (13)
2011 March (2)
2011 January (1)
2010 December (1)
2010 November (1)
...more
  Link Site
올블로그
KOON
태터툴즈
엑스파이더
심프로그
디지털예보
thesimplog.com
feed rss
 Visitor Statistics
Total  :  336630
Today :  49
Yesterday :  90


 Google



blog bar tagsbar guest loginbarlogoutbarX-inbar
line php 메일 간단소스
PHP 프로그래밍 | 06/05/29 | 하얀늑대

<?
if($mode=='mailsend') { // $mode 값이 mailsend 일 경우 아래 내용 실행
 $limit = 5;  // 첨부파일 제한 용량 (단위:MB)

 #### 에러 발생시 back("에러문",이동할 페이지수) 함수를 사용하여 에러출력 후 지정한 페이지 수만큼 뒤로 이동함 ###
 function back($str,$no=-1) {
  echo "<script>
    window.alert("".$str."")
    history.go(".$no.")
    </script>
   ";
 }

 // $to 값이 공백일 경우 에러출력 후 한페이지 뒤로 이동
 if(!ereg("([^[:space:]]+)",$to)) {
  back("메일을 받는사람의 메일주소가 필요합니다.");
  exit;
 }

 // $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;
 }

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

## 헤더생성 ##
 $header .= "Return-Path: $fromrn";    // 반송 이메일 주소
 $header .= "From: $fromrn";      // 보내는 사람 이메일 주소
 $header .= "MIME-Version: 1.0rn";    // MIME 버전 표시
 $header .= "Content-Type: Multipart/mixed; boundary = "$boundary"";  // 구분자가 $boundary 임을 알려줌

## 여기부터는 이메일 본문 생성 ##
 $mailbody .= "This is a multi-part message in MIME format.rnrn";  // 메세지
 $mailbody .= "--$boundaryrn";               // 내용 구분 시작

//내용이 일반 텍스트와 html 을 사용하며 한글이라고 알려줌
 $mailbody .= "Content-Type: text/html; charset="ks_c_5601-1987"rn";
//암호화 방식을 알려줌
 $mailbody .= "Content-Transfer-Encoding: base64rnrn";
//이메일 내용을 암호화 해서 추가
 $mailbody .= base64_encode(nl2br($body))."rnrn";

## 첨부 파일 개수만큼 루프를 돌면서 본문에 추가함 ##
 for($i=0;$i<count($userfile);$i++) {
  if($userfile[$i]) {
 // $limit 으로 설정한 용량 보다 클경우 에러 출력 후 뒤로 이동
   if($userfile_size[$i] > ($limit * 1024 * 1024)) {
    back(($i+1)."번째 첨부파일이 제한용량(".$limit."MB)을 초과하였습니다.");
    exit;
   }

   $filename = basename($userfile_name[$i]);  // 파일명만 추출 후 $filename에 저장
   $fp = fopen($userfile[$i], "r");     // 파일 open
   $file = fread($fp, $userfile_size[$i]);  // 파일 내용을 읽음
   fclose($fp);           // 파일 close

   // 파일첨부파트
   $mailbody .= "--$boundaryrn";     // 내용 구분자 추가
 // 여기부터는 어떤 내용이라는 것을 알려줌
   $mailbody.= "Content-Type: ".$userfile_type[$i]."; name="".$filename.""rn";
 //암호화 방식을 알려줌
   $mailbody .= "Content-Transfer-Encoding: base64rn";
 // 첨부파일임을 알려줌
   $mailbody .= "Content-Disposition: attachment; filename="".$filename.""rnrn";
 // 파일 내요을 암호화 하여 추가
   $mailbody .= base64_encode($file)."rnrn";
  }
 }
 
/*
위에서 생성된 $header 와 $mailbody 를 mail() 함수를 이용해서 $to 에게 보냄
만약 메일 전송 실패시 에러출력 후 첫화면으로 이동
*/
 if(!mail($to,addslashes($subject),$mailbody,$header)) back("이메일 발송해 실패 하였습니다.");
 else echo "<script>alert('메일을 발송하였습니다.');location.replace('?');</script>";


// 아래 html 의 경우 특별히 설명이 필요 없을 듯 하네요...^^
} else {  // $mode 값이 mailsend 가 아닐경우 아래 내용 실행
?>
<html>
<head>
</head>
<body text="white" link="#CDEFFF" vlink="#DCD8FF" alink="#FFD2CD">
<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"><br>
   <input type="file" name="userfile[]" size="30"><br>
   <input type="file" name="userfile[]" size="30"><br>
   <input type="file" name="userfile[]" size="30"><br>
   <input type="file" name="userfile[]" size="30">
  </td>
 </tr>
 <tr>
  <td colspan=2 align=center><br>
   <input type="submit" name="send" value="편지보내기">
   <input type="reset" name="cancel" value="내용지우기">
  </td>
 </tr>
</form>
</table>

<?
}
?>

bullet관련글0 | 댓글2
아이니 2008/02/23 답글 삭제
《$mode 값이 mailsend 일 경우... 》:이게 무슨소리죠?
초보라서 뗑^^^.
WINXP에서 자체SMTP서버깔아서 ***님의 소스로 시험중인데 잘 안되네요.
bullet
하얀늑대2008/05/22 삭제
위에 페이지는 한페이지 내에서 이뤄집니다..
그래서 처음에는 mode값이 null값이지만 편지보내기를 클릭시
mode값에 mailsend값이 들어갑니다..mode값을 체크후 값이 mailsend이면 메일를 발송하게 되는거지요..
Name :   Pass :  URL :
비밀글로 등록  submit
이전/ 265 266 267 268 269 [270] 271 272 273 274 / 다음 top