안녕하세요!!
파일 첨부 메일전송시 파일 크기가 이상하네요.
소스는 아래와 같습니다..
if($file1 && $file1_size){
$filename=basename($file1_name); //제가 보때는 그냥 $userfile_name만 써
도 되것같은데 한번더 걸렀네요 basename()는 파일 path를 다 빼구
파일명만
반환하는 함수
$result=fopen($file1,"r"); //그 파일을 읽기 모드로 엽니다.
$file=fread($result,$file1_size); //읽기모드로 연 파일을 $file변
수로 가지고 옵니다
fclose($result); // 읽기모드로 연 파일을 닫습니다.
if ($file1_type == ""){ //그 파일의 type가 없으면..(메일 헤더
에 쓰이는 내용임돠)
$file1_type = "application/octet-stream";
}
$boundary = "----" . uniqid("part");
$mailheaders .= "MIME-Version: 1.0\r\n";
$mailheaders .= "Content-Type: multipart/mixed;
boundary=\"$boundary\"";
$bodytext = "This is a multi-part message in MIME
format.\r\n\r\n";
$bodytext .= "--$boundary\r\n";
$bodytext .= "Content-Type: text/html; charset=euc-kr\r\n";
$bodytext .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
$bodytext .= nl2br(stripslashes($comment)) . "\r\n\r\n";
$bodytext .= "--$boundary\r\n";
$bodytext .= "Content-Type: $file1_type;
name=".$filename."\r\n";
$bodytext .= "Content-Transfer-Encoding: base64\r\n\r\n";
$bodytext .= "Content-Disposition: attachment;
filename=".$filename."\r\n\r\n";
$bodytext .="Content-Length:$file \r\n";
$bodytext .= "base64_encode($file)\r\n\r\n";
//$bodytext .= ereg_replace("(.{80})","\\1\r\n",base64_encode
($file)); //파일을 인코딩 해서 본문에 넣어버리네요...
$bodytext .= "\r\n--$boundary--\r\n"; */
}else{ //만약 첨부파일이 없다면 그냥 내용만 보냅니다...
$bodytext = stripslashes($comment);
}
$old_smtp = ini_set("SMTP", "127.0.0.1"); //강제적으로 smtp
설정 --> ISP 업체의 메일서버 입력하세요
$sendmail_set = ini_set("sendmail_from",$admin_mail); //
강제적으로 php.ini -> smtp의 sendmail_from 설정
여기에나와 있는 게시판에 내용과 거의 똑같습니다...(참고로
제가 리눅스에
서
게시판에 파일첨부 리풀시 메일전송에 쓸때와 같는 것임돠
다른건 아래부분에
$old_smtp = ini_set("SMTP", "127.0.0.1"); //강제적으로 smtp 설정 --> ISP
업체의 메일서버 입력하세요
$sendmail_set = ini_set("sendmail_from",$admin_mail); //강제적으로
php.ini -> smtp의 sendmail_from 설정
이 부분인데 이것이 없음 윈도우2000 서버에선 전송이
안되더군요 그래서 첨부
했음돠
(이것도 이곳 게시판에서 힌트를 얻어서 했죠)
메일전송은 성공적으로 보내지더군요...
파일 또한 전송이 되고요...
문제는 첨부된 파일이 제 크기가 아닌 이상한 용량으로
올라간다느거죠..
다운 받고 실행해 보면 역시나 안되겠죠.....
$bodytext .="Content-Length:$file \r\n"; 파일 크기를 나타내는부분이
없다
고 해서 첨부했는데 똑 같더라고요.
이 부분은 아마도 다운받을때 쓰는것 같던뎅...(메일엔
거의 안쓰고 있는거 아
닌가요??)
내용이 좀 길어졌는데요....
현재 리눅스에선 제대로 보내지던것 같은뎅 왜 전송이
안될까요??
전 윈도우 2000서버로 이용하고 있고요 php와 iis 연동으로
이용하고 있답니
다...
프로젝트가 급하게 진행된관계로 ... 이렇게 게시판에 자문을
구하는군요.
함께 정보를 공유했음 합니다.... 부탁 드릴께요..
(참 윈도우 아웃룩 헤더 정보를 어떻게 보는지요.
윈도우 헤더관련 정보는 이렇게 해서 본다는데 ... 이부분이
되면
위 내용이 해결될듯도 싶은데...)
|