제목 | php 메일 발송 시 파일 첨부 | ||
---|---|---|---|
글쓴이 | 앙마 | 작성시각 | 2014/10/27 18:42:54 |
|
|||
ci가 아닌 생 php로 메일 발송 중입니다 인터넷에 일단 시각적으로 깔끔해 보이는 소스를 찾았는데요 // 이메일 발송 // toname, toemail = 받는 사람 // fromname, fromemail = 보내는 사람 // title = 제목 // content = 본문내용 // charset = 언어, 기본값: euc-kr // mode = TEXT/HTML // att = 첨부파일, 예제: $_FILES['userfile']['tmp_name'] // 파일이 여러 개일 경우 // 하나의 파일에 대한 정보를 :로 구분해서 묶어 주어 ,로 구분해 줍니다. // $_FILES['userfile']['tmp_name']:$_FILES['userfile']['name']:MIMETYPE // tmp_name[0]:name[0]:mime[0],tmp_name[1]:name[1]:mime[1] $att = $_FILES['userfile']['tmp_name'] ; $toemail = "11111@naver.com"; $fromemail = "22222@hanmail.net"; $title = "제목 123"; $content = "메일 테스트"; $charset='euc-kr'; $mode='TEXT/HTML'; $Arrayfile = explode(',',$_FILES['userfile']['tmp_name']); // 받는 사람 $recipient = $toname." <".$toemail.">\r\n"; // 기본 헤더 코드 $header .= "Return-path: <".$fromemail.">\r\n"; $header .= "From: ".$fromname."<".$fromemail.">\r\n"; // 에러발생시 반송될 주소 $header .= "Reply-To:".$fromname."<".$fromemail.">\r\n"; $header .= "MIME-Version: 1.0\r\n"; $header .= "X-Sender: <".$fromemail.">\r\n"; $header .= "X-Mailer: PHP\r\n"; // 첨부파일이 없다면... if(empty($att)){ // 내용 첨부 $header .= "Content-Type: ".$mode. "; charset=".$charset."\r\n"; $body = $content."\r\n\r\n"; } // 첨부파일이 있다면... else{ for($i=0; $i list($upfile[$i],$filename[$i],$mimetype[$i]) = explode(':',$Arrayfile[$i]); // 파일열기 $fp[$i] = @fopen($upfile[$i],"r"); $file[$i] = @fread($fp[$i],@filesize($upfile[$i])); @fclose($fp[$i]); // 파일 타입 if(empty($mimetype[$i])){ $mime[$i] = "application/octet-stream"; } else { $mime[$i] = $mimetype[$i]; } } $boundary = "--".uniqid("gmForm editor"); $header .= "Content-type: MULTIPART/MIXED; BOUNDARY=\"$boundary\""; $body = "This is a multi-part message in MIME format.\r\n\r\n"; $body .= "--$boundary\r\n"; // 내용 첨부 $body .= "Content-Type: ".$mode."; charset=".$lang."\r\n"; $body .= "Content-Transfer-Encoding: base64\r\n\r\n"; $body .= chunk_split(base64_encode($content))."\r\n\r\n"; for($i=0; $i // 파일 첨부 $body .= "--$boundary\r\n"; $body .= "Content-Type: $mime[$i]; name=\"$filename[$i]\"\r\n"; $body .= "Content-Transfer-Encoding: base64\r\n\r\n\r\n"; $body .= chunk_split(base64_encode($file[$i]))."\r\n"; } $body .= "\r\n--$boundary--\r\n"; } return @mail($recipient,$title,$body,$header); ?> 위와 같이 할 경우 메일은 발송되고 첨부파일도 들어는 가있습니다만 이미지를 보내도 .txt파일이 나오더군요;;; 어떻게 수정을 해야 좋을지... |
|||
다음글 | Ki_Board 설치 질문 드립니다. (2) | ||
이전글 | curl로 Request Header를 변경해서 페이지... (2) | ||
변종원(웅파)
/
2014/10/28 11:27:34 /
추천
0
|
앙마
/
2014/10/28 15:09:32 /
추천
0
변종원 // 감사합니다 해결 했네요
|
이미지 첨부했을때 이미지의 mime type이 제대로 나오는지 text로 나오는지... ^^