สอบถาม ส่งเมล์แนบไฟล์สองไฟล์ค่ะ ช่วยหน่อยค่ะ

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: สอบถาม ส่งเมล์แนบไฟล์สองไฟล์ค่ะ ช่วยหน่อยค่ะ

Re: สอบถาม ส่งเมล์แนบไฟล์สองไฟล์ค่ะ ช่วยหน่อยค่ะ

โดย mindphp » 01/04/2010 12:14 am

ping เขียน:ทำตามแล้ว file ที่แนบไป เป็น 0.0 kb
ทำแบบไหนครับขอรายละเอียดที่ทำไปด้วย

Re: สอบถาม ส่งเมล์แนบไฟล์สองไฟล์ค่ะ ช่วยหน่อยค่ะ

โดย ping » 31/03/2010 10:07 am

ทำตามแล้ว file ที่แนบไป เป็น 0.0 kb

Re: สอบถาม ส่งเมล์แนบไฟล์สองไฟล์ค่ะ ช่วยหน่อยค่ะ

โดย kasilot » 13/11/2009 11:12 am

ขอบคุณมากๆค่ะ

ตอนนี้ได้แล้ว เป้นที่ตัว Outlook อ่าค่ะ มองเหงไฟล์เดียว

แต่พอใช้ webmail มองเห้นปกติ ทำเอางงเป้นอาทิตย์เลย

ยังไงก้อขอบคุณมากนะค่ะ

Re: สอบถาม ส่งเมล์แนบไฟล์สองไฟล์ค่ะ ช่วยหน่อยค่ะ

โดย mindphp » 13/11/2009 10:54 am

ลองเช็ค Loop ว่าเก็บข้อมุลไปทั้งหมดหรือเปล่า
อาจจะลืมเรื่องตัวเชื่อม string ระหว่าง loop

Re: สอบถาม ส่งเมล์แนบไฟล์สองไฟล์ค่ะ ช่วยหน่อยค่ะ

โดย kasilot » 12/11/2009 3:09 pm

ลองทำดูแล้วอ่าค่ะ

แต่ไฟล์ที่ส่งไปกับเมล์จิงๆ มีแค่ไฟล์สุดท้ายอ่าค่ะ ข้างหน้าไม่มีเลย

ไม่รู้ว่าเป็นเพราะอะไร :(

Re: สอบถาม ส่งเมล์แนบไฟล์สองไฟล์ค่ะ ช่วยหน่อยค่ะ

โดย mindphp » 10/11/2009 6:08 pm

ตามนี้เก็บไฟล์ที่ต้องการส่งใส่ตัวแปล array แล้ว ทำ Loop เืพื่อใส่แปลงไฟล์ส่งไปกับเมล

โค้ด: เลือกทั้งหมด

<?php
 
$files = array("file_1.txt","file_2.txt","file_3.txt",......);
 
// preparing attachments
for($x=0;$x<count($files);$x++){       // ใช้ foreach แทนก็ได้
    $file = fopen($files[$x],"rb");
    $data = fread($file,filesize($files[$x]));
    fclose($file);
    $data = chunk_split(base64_encode($data));
    $emailMsg.= "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$files[$x]\"\n" . 
    "Content-Disposition: attachment;\n" . " filename=\"$files[$x]\"\n" . 
    "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
    $emailMsg.= "--\n";
}
 
?>
ลองดูครับ

Re: สอบถาม ส่งเมล์แนบไฟล์สองไฟล์ค่ะ ช่วยหน่อยค่ะ

โดย kasilot » 10/11/2009 5:20 pm

คนธรรมดา ก้อได้ค่ะ แค่ช่วยหน่อยได้มั้ยค่ะ

Re: สอบถาม ส่งเมล์แนบไฟล์สองไฟล์ค่ะ ช่วยหน่อยค่ะ

โดย mindphp » 10/11/2009 5:13 pm

ลงโค้ดกรุณาครอบโค้ดด้วยครับ
และที่นี่คงไม่มีเทพนะครับ มีเพื่อนๆที่เป็นคนธรรมดาที่ให้คำแนะนำกัน

สอบถาม ส่งเมล์แนบไฟล์สองไฟล์ค่ะ ช่วยหน่อยค่ะ

โดย kasilot » 10/11/2009 3:32 pm

คือว่า เขียน code ส่งเมล์แนบไฟล์ สองไฟล์อ่าค่ะ แต่พอส่งแล้วกลับส่งไฟล์ไปแค่ไฟล์เดียว
รบกวนใครก้อได้ ช่วยดูให้หน่อยว่า ผิดตรงไหน และ แก้ยังไงค๊ะ

นี่code ค่ะ
//////////////////////////////////////////////////////////

โค้ด: เลือกทั้งหมด

<?

require("class.phpmailer.php");
$resume = $_FILES['Resume']['name'];
$comment = $_FILES['comment']['name'];
//echo $resume;
//echo $comment;

if ($resume AND $comment == null){

 $emailTo = "***@yyy.com";
 $emailSubject = "JOB!";
 $emailName = $_REQUEST['fm_name'];
 $emailFrom = $_REQUEST['fm_email'];
 
 $send_mail=mail($emailTo,$emailSubject,$emailName,$emailFrom);
 if(!$send_mail)
 {
 echo"<center><br> Send Complete 1 <br></center>";
 //echo "<meta http-equiv='refresh' content=2;URL=apply.html>"; 
 }
 else{
	echo"<center><br> Send Fail  1   <br></center>";
	//echo "<meta http-equiv='refresh' content=2;URL=apply.html>"; 
 }
}else{

 
 $emailTo = "***@yyy.com";
 $emailSubject = "JOB!";

 $boundary = md5(uniqid(time()));
 $emailHeader = "From: " . $_POST['fm_email'] . "\n";
 $emailHeader .= "Content-Type: multipart/mixed; boundary=$boundary\n";
 $emailMsg = "--$boundary\n";
 $emailMsg .= "Content-Type: text/plain; charset=windows-874\n";
 $emailMsg .= "Content-Transfer-Encoding: 8bit\n\n";
 $emailMsg .= $_POST['fm_name'] . "\n";
 $emailMsg .= $_POST['fm_email'] . "\n";
 $emailMsg .= "--$boundary\n";

 $file_tmpname = $_FILES['Resume']['tmp_name'];
 $file = fopen($file_tmpname,"rb");
 $file_content = fread($file ,filesize($file_tmpname));
 fclose($file);
 $b64_enc = base64_encode($file_content) . "\n";
 $file_split = chunk_split($b64_enc);
 $mime_type = $_FILES['Resume']['type'];
 $file_name = $_FILES['Resume']['name'];
 $emailMsg .= "Content-Type: $mime_type; name=\"$file_name\"\n";
 $emailMsg .= "Content-Transfer-Encoding: base64\n";
 $emailMsg .= "Content-Disposition: attachment; filename=\"$file_name\"\n\n";
 $emailMsg .= "$file_split\n";
 $emailMsg .= "--$boundary--";


 $file_tmpname2 = $_FILES['comment']['tmp_name'];
 $file2 = fopen($file_tmpname2,"rb");
 $file_content2 = fread($file2 ,filesize($file_tmpname2));
 fclose($file2);
 $b64_enc2 = base64_encode($file_content2) . "\n";
 $file_split2 = chunk_split($b64_enc2);
 $mime_type2 = $_FILES['comment']['type'];
 $file_name2 = $_FILES['comment']['name'];
 $emailMsg .= "Content-Type: $mime_type2; name=\"$file_name2\"\n";
 $emailMsg .= "Content-Transfer-Encoding: base64\n";
 $emailMsg .= "Content-Disposition: attachment; filename=\"$file_name2\"\n\n";
 $emailMsg .= "$file_split2\n";
 $emailMsg .= "--$boundary--";



 if (mail($emailTo, $emailSubject, $emailMsg, $emailHeader)) {
 echo"<center><br>  Send Complete    </center>";
 //echo "<meta http-equiv='refresh' content=2;URL=sendmail.php>"; 
 }
  else {
 echo"<center><br> Send Fail  </center>";
 //echo "<meta http-equiv='refresh' content=2;URL=sendmail.php>"; 
 }

}

?>
///////////////////////
ขอบพระคุณอย่างสูงค่ะ

ข้างบน