Page 1 of 1

เกี่ยวกับการส่ง E-mail

Posted: 18/04/2008 10:17 pm
by vent
คือ ผมทำระบบส่ง E-mail พร้อมกันหลายๆ mail อ่ะครับ

และก็สามารถ แนบไฟล์ ได้

แต่ผมกลัวว่า ถ้าเกิดมีจำนวน E-mail มากขึ้นเรื่อยๆ

จะทำให้เวลาในการ run script หน้าส่งเมล เกินเวลาที่กำหนดของ server คือ 180 วินาที

ซึ่งตรงนี้ผมไม่สามารถไปแก้ไขเวลาได้

ผมเลย ให้ มันส่งทีละ 10 mail พอครบ 10 เมล ก็ค่อย refresh หน้าเดิม แล้วส่งต่อไปอีก 10 เมล

แต่ทีนี้ ไฟล์ที่เราแนบมาด้วยนั้น มันจะถูกส่งไปแค่ 10 เมลแรกเท่านั้น

เมื่อ refresh แล้ว ทำให้ ไฟล์ที่เราแนบมาหายไป


มีวิธีให้ไฟล์ที่ผมแนบ มันอยู่ตลอดมั้ยครับ ไม่ว่าผมจะ refresh กี่ครั้ง

Posted: 19/04/2008 12:21 am
by mindphp
ครั้งแรก เก็บไฟล์ ที่จะ แนปไว้ อย่างไร

Posted: 19/04/2008 4:43 pm
by vent
if ($HTTP_POST_FILES['file']['type']){
$mimeType=$HTTP_POST_FILES['file']['type'];
}else {
$mimeType="application/unknown";
}
$fileName=$HTTP_POST_FILES['file']['name'];
$tmpName=$HTTP_POST_FILES['file']['tmp_name'];
$fSize=$HTTP_POST_FILES['file']['size'];

$boundary=uniqid("");
$header="From: $from\n";
$header.="Content-type: multipart/mixed; boundary=\"$boundary\"\n";

if(!empty($tmpName)){
$fp=fopen($tmpName,"r");
$read=fread($fp,filesize($tmpName));
$read=base64_encode($read)."\n";
$read=chunk_split($read);
$mbody="--$boundary\n";
$mbody.="Content-type:text/plain;
charset=utf-8;\n";
$mbody.="Content-transfer-encoding:8bit\n\n";
$mbody.="$msg\n";
$mbody.="--$boundary\n";
$mbody.="Content-type:$mimeType; name=$fileName\n";
$mbody.="Content-disposition:attachment;
filename=$fileName\n";
$mbody.="Content-transfer-encoding:base64\n\n";
$mbody.=$read;
$mbody.="--$boundary--";
}else{
$mbody="--$boundary\n";
$mbody.="Content-type:text/plain;
charset=utf-8;\n";
$mbody.="Content-transfer-encoding:8bit\n\n";
$mbody.="$msg\n";
$mbody.="--$boundary--\n";
}

-----------------------------------------------------------------------------------------------------------------------------------------

code ที่ผมใช้ก็ประมาณนี้ ไฟล์แนบมาจาก <input name="file" type="file" />

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

Posted: 19/04/2008 5:57 pm
by mindphp
ใช้ วิธี อัพโหลด ไฟล์ ไปไว้บน server แทน ก่อน ครับ
แล้ว พอจะส่ง ก็ อ่าน ไฟล์ จาก server แนปไปกับ mail