การเขียนโปรแกรม ส่งเมล์จากหน้าเว็บ
เนื่องด้วยช่วงหลังๆนี้ มีการสอบถามเข้ามาว่า จะเขียนโปรแกรมส่งเมล์จากหน้าเว็บได้อย่างไร วันนี้เลยขอเอาเครื่องมือทำมาหากิน มาแนะนำและอธิบายให้สำหรับ มือใหม่สำหรับหัดทำเว็บได้เขียนโปรแกรมกัน คร่าวๆนะครับ
ก่อนอื่นเรามาดู code ก่อนนะครับ (mail.php)
<?php $to = 'nobody@example.com'; $subject = 'the subject'; $message = 'hello'; $headers = 'From: webmaster@example.com' . "\r\n" . 'Reply-To: webmaster@example.com' . "\r\n" . 'Content-type: text/html; charset=utf-8\r\n' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers); ?>
$to ให้กำหนด อีเมล์ผู้รับครับ เปลี่ยนค่าใน ‘xxxx@xxxx.xxx‘ ให้เป็นอีเมล์ของท่านเลยครับแต่ยังให้คง ” ไว้เหมือนเดิมนะครับปิดหน้าหลัง และลงท้านด้วย ;
ต่อมาคือ $subject คือหัวข้อที่จะให้ส่งไปครับกำหนดตายตัวไปเลยก็ได้ครับว่า เป็นส่งมาจากฟอร์มอะไร ส่วน $message คือข้อมูลที่จะส่งไปทางเมล์นะครับ สำหรับส่วนนี้สามารถใช้ข้อมูลตาม data ที่ส่งมาก็ได้ครับ แต่หากเราต้องการกำหนดให้เป็นข้อมูลตายตัวก็ใส่ไปตามที่เราต้องการครับ
สำหรับ $headers ในส่วนนี้ค่อนข้างสำคัญครับ จะบอกลักษณะของเมล์ ประเภทและอื่นๆ ซึ่งจะส่งเมล์ได้ไม่ได้ หรือส่งแล้วเข้าเมล์ขยะหรือไม่ ก็น่าจะอยู่ที่ส่วนนี้แหละครับ ต้องกำหนดให้ถูกต้องครับ แต่ที่ผมยกตัวอย่างมานี้ เป็นเพียงตัวอย่างนะครับ ของจริงค่า $headers อาจจะมีเยอะกว่านี้ครับ แต่เพียงแค่ตัวอย่างที่ผมยกมานี้ ก็สามารถ run และ ใช้งานได้จริงครับไม่เชื่อลองดูได้ครับ
ต่อมากการทำงานล่างสุดเลยคือ function ส่งเมล์ที่ชื่อว่า mail() ครับ ตัวนี้ก็เป็นหัวใจหลักของการทำให้ที่ทำให้ค่าต่างๆที่เราได้ตั้งค่ามานั้น ทำการส่งเมล์ได้
mail($to, $subject, $message, $headers);

การใช้งานก็ตามตัวอย่างด้านบนนี้เลยครับ ต่อไปคือการส่งค่าจากฟอร์ม ที่ท่านต้องรู้ครับ โดยหลักการทำงานจะเป็น การส่งค่ามาจากฟอร์มๆหนึ่ง ไปยังหน้าที่มี code ส่งเมล์ด้านบนที่ผมได้กล่าวมาแล้วนั้น เพื่อนำค่าหรือข้อความเหล่านั้นส่งเมล์
ขออธิบายคร่าวๆก่อนแล้วกันนะครับแล้ววันหลังผมจะมาอธิบายเรื่องการส่งค่า GET / POST ให้ทราบกันอีกครั้งครับ
การส่งค่าจากฟอร์ม ง่ายๆทำได้ 2 วิธีครับ คือส่งแบบ GET และแบบ POST ครับการส่งสองแบบมีความแตกต่างกันครับ เลือกใช้ตามประเด็นไปครับ ในที่นี้การส่งข้อมูลไปอีกไฟล์หนึ่งเพื่อส่งเมล์ผมขอแนะนำให้ใช้ POST ครับอาจจะเป็นความชอบส่วนตัวหรือ ควรจะใช้ก็แล้วแต่ อิอิ
สิ่งที่ท่านต้องทำคือ
1. สร้างฟอร์มการส่งเมล์ (contact.html)
2. ตั้งค่า action=”" ให้มายังไฟร์ที่เราเขียน function mail() ไว้ครับทำได้เช่น action=”mail.php” ยังไงก็ตั้งค่า path ให้ถูกต้องด้วยนะครับ
3. ให้เลือก method ให้ด้วยครับซึ่งหากไม่ทำการตั้งค่าไว้ ระบบจะทำให้ส่งเป็น GET ครับซึ่งผมไม่ต้องการ ดังนั้นตั้งค่าเป็น POST
4. กำหนดค่า name ของ input box ครับเช่น <input name=”abcde” />
สำหรับหน้าที่ใช้รับข้อมูล ก็ใส่แบบนี้ไปครับ (mail.php)
$abcd = $_POST['abcd'];
เวลานำไปใช้ก็เช่น
$message = $abcd;
ซึ่งจากปกติจะเป็น
$message = ‘hello’;
ฟังดูอาจจะงง ท่านสามารถเข้าไปดูตัวอย่างเพิ่มเติมได้ที่ลิ้งค์นี้ครับ
http://th.php.net/manual/en/function.mail.php
ต้องขออภัยที่ไม่ได้มี code download ตัวอย่างที่สามารถเอาไปใช้งานได้ทันที ผมอยากให้คนที่คิดจะทำ ทำให้เป็นเองแล้วท่านจะได้รู้ว่าทำอย่างไร จะได้ประยุกต์ ได้เพราะหากจะเขียนโปรแกรมแล้ว สิ่งเหล่านี้ไม่ช้าก็เร็ว ท่านต้องศึกษาและต้องเข้าใจมันครับ
ใครนำบทความผมไปใช้ต่อโปรดทำลิ้งค์กลับมายังเว็บของผมด้วยนะครับ