<?php header('Content-Type: text/html; charset=UTF-8'); ?> <form action="<?php echo $PHP_SELF ?>" enctype="multipart/form-data" method="post"> อีเมล์แอดเดรสของผู้ส่ง : <input type="text" name="from"><br> อีเมล์แอดเดรสของผู้รับ : <input type="text" name="to"><br> หัวเรื่อง : <input type="text" name="subject"><br> เนื้อความ : <textarea name="body" rows="3"></textarea><br> ไฟล์ที่จะแนบ : <input type="file" name="attachment"><br> <input type="submit" name="send" value="ส่งเมล์"> <input type="reset" value="clear"> </form><hr> กรุณากรอกรายละเอียดให้ครบทุกช่องนะครับ เพราะโค้ดไม่ได้ดักข้อผิดพลาดไว้ <?php //ถ้ามีการคลิกปุ่มส่งข้อมูล ให้ดำเนินการส่งเมล์ if ($send) { //สร้างเลขสุ่มขึ้นมา เพื่อใช้ในการกำหนดขอบเขตเนื้อหาของเมล์ $boundary = uniqid(""); //สร้างข้อมูลในส่วนเฮดเดอร์ $header = "From: $from\n"; $header .= "Content-type: multipart/mixed; boundary=\"$boundary\""; //กำหนดชนิดของไฟล์ที่แนบมากับอีเมล์ if ($HTTP_POST_FILES['attachment']['type']) { $mimeType = $HTTP_POST_FILES['attachment']['type']; } else { $mimeType = "application/unknown"; } //เก็บชื่อไฟล์ไว้ในตัวแปร $fileName $fileName = $HTTP_POST_FILES['attachment']['name']; $tmpName = $HTTP_POST_FILES['attachment']['tmp_name']; //เปิดไฟล์ $fp = fopen($tmpName, "r"); //อ่านเนื้อหาของไฟล์เข้ามาเก็บไว้ในตัวแปร $read $read = fread($fp, filesize($tmpName)); /* เข้ารหัสไฟล์ที่จะแนบไป พร้อมทั้งปิดท้ายด้วยอักขระขึ้นบรรทัดใหม่ (\n) ซึ่งถือว่าสำคัญมาก มิฉะนั้นโปรแกรมอ่านเมล์จะไม่สามารถเปิดไฟล์ที่แนบไปกับเมล์ได้ */ $read = base64_encode($read) . "\n"; /* ใช้ฟังก์ชั่น chunk_split() ตัดเนื้อหาของไฟล์ที่เข้ารหัสแล้วออกเป็นหลายๆบรรทัด บรรทัดละไม่เกิน 76 ตัวอักษร (ตามข้อกำหนดของ RFC 2045) */ $read = chunk_split($read); /* สร้างข้อมูลในส่วนเนื้อความ โดยใช้ตัวเลขที่ได้จากฟังก์ชั่น uinqid() เป็นตัวกำหนดขอบเขตของข้อมูล */ $mbody = "--$boundary\n"; $mbody .= "Content-type: text/plain; charset=windows-874;\n"; $mbody .= "Content-transfer-encoding: 8bit\n\n"; $mbody .= "$body\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--"; //ส่งเมล์ if (mail($to, $subject, $mbody, $header)) { echo "การส่งเมล์สำเร็จ ให้ลองเช็คเมล์ดู"; } else { echo "ไม่สามารถส่งเมล์ได้ กรุณาตรวจสอบ"; } } ?>
เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง