일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드 푸쉬
- Mail Server
- FCM
- C# IO
- html5
- android 효과음
- php 취약점
- xe
- 안드로이드 gcm
- php 시큐어코딩
- 우분투
- soundpool
- PHP
- roundcube
- WebView
- 안드로이드 푸시
- chart.js
- 설치
- C#
- mysql
- 자바스크립트
- Android
- javascript
- 폼메일
- not working
- UML
- 안드로이드
- curl
- 자동 생성
- dovecot
- Today
- Total
그러냐
php 파일첨부 폼메일 첨부파일깨짐현상 제거 본문
function sendtest($id){
Configure::write('debug',2);
$this->layout = 'sub_layout';
if($this->data){
// pr($this->data);exit;
// /images/common/btnBan06_on.gif
$charset="utf-8";
$from ='sd-23@.kr';
$from_name = $this->data['Mailing']['name'];
$title = $this->data['Mailing']['title'];
$message = '<br/>신청자 : '.$this->data['Mailing']['name'].'<br/><br/>이메일 : '.$this->data['Mailing']['email'].'<br/><br/><br/>'.$this->data['Mailing']['content'];
$to_name = '관리자';
$to = 'sd-23@..kr';
$uploaddir = APP.'/webroot/files/uploadtmp/';
$uploadfile = $uploaddir . time().rand();
// echo $uploadfile;exit;
if( !is_dir($uploaddir) ) @mkdir($uploaddir."/",0707);
if(@$this->data['Mailing']['file']['name']){
// echo $this->data['Mailing']['file']['tmp_name'];
$fEXIST = strtolower(substr($this->data['Mailing']['file']['name'], -3));
$uploadfile .= '.'.$fEXIST;
move_uploaded_file($this->data['Mailing']['file']['tmp_name'], $uploadfile);
}
$boundary = "----".uniqid("part");
$title = "=?$charset?B?".base64_encode($title)."?=";
$from_name = "=?$charset?B?".base64_encode($from_name)."?=";
$to_name = "=?$charset?B?".base64_encode($to_name)."?=";
$recipient = sprintf("%s <%s>", $to_name, $to);
$header = sprintf(
"From: %s <%s>\r\n".
"Reply-to: <%s>\r\n".
"X-Mailer: webmailer\r\n".
"MIME-Version: 1.0\r\n".
"Content-Type: Multipart/mixed; boundary = \"$boundary\"\r\n\r\n",
$from_name,
$from,
$from,
$boundary
);
$mailbody = "This is a multi-part message in MIME format.\r\n\r\n"; // 메세지
$mailbody .= "--$boundary\r\n"; // 내용 구분 시작
$mailbody .= "Content-Type: text/html; charset=\"$charset\"\r\n";
$mailbody .= "Content-Transfer-Encoding: base64\r\n\r\n";
$mailbody .= base64_encode(nl2br($message))."\r\n\r\n";
if(@$this->data['Mailing']['file']['name']){
$filename = $this->data['Mailing']['file']['name']; // 파일명만 추출 후 $filename에 저장
$fp = fopen($uploadfile, "r"); // 파일 open
$file = fread($fp, $this->data['Mailing']['file']['size']); // 파일 내용을 읽음
echo $this->data['Mailing']['file']['size'];
fclose($fp); // 파일 close
$fp11 = fopen($uploaddir.'test.txt','w');
fwrite($fp11,$file);
fclose($fp11);
$filename = iconv('utf-8','euc-kr',$filename);
$mailbody .= "--$boundary\r\n"; // 내용 구분자 추가
$mailbody.= "Content-Type: ".$this->data['Mailing']['file']['type']."; name=\"".$filename."\"\r\n";
$mailbody .= "Content-Transfer-Encoding: base64\r\n";
$mailbody .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
$mailbody .= chunk_split(base64_encode($file))."\r\n\r\n";
}
if(mail($recipient,addslashes($title),$mailbody,$header)){
// unlink($uploadfile);
$this->Session->setFlash("발송 되었습니다..");
}else{
$this->Session->setFlash("발송 실패하였습니다.");
}
}
}
chunk_split 사용하면됨
'php' 카테고리의 다른 글
엑셀파일 다운로드 시 한글깨짐 현상 (0) | 2016.01.25 |
---|---|
php 날짜 비교 (0) | 2016.01.25 |
php 폼메일 파일첨부기능 (0) | 2016.01.25 |
php.ini 첨부용량 설정 (0) | 2016.01.25 |
Fatal error: require() [function.require]: Failed ope (0) | 2016.01.25 |