การทำ form ส่ง mail (worldzone.net)

ปรับปรุง : 2548-02-06 ()

บทเรียน ONLINE : การเขียนภาษา PHP
[ การทำ form ส่ง mail ]

  1. ข้อควรทราบ
  2. การเขียน form ส่ง E-Mail
  3. โปรแกรมที่รับค่าจาก form ไปส่ง E-Mail (ง่ายเหลือเชื่อครับ แต่ก็ต้องเชื่อ)
  4. แบบฝึกหัด
หมายเหตุ : ที่ wordlzone.net นี่เปลี่ยนหนักเข้าไปอีกครับ คือนอกจากให้บริการ php เฉพาะคนที่เสียเงินแล้ว ยังลบข้อมูลในเว็บทั้งหมดที่ฝากไว้กับเขา ทิ้งทั้งหมดเลยครับ ที่เคยเขียน graph ได้ก็เลยหายไปด้วย
ข้อควรทราบ
  1. ตัวอย่างชุดนี้ต้องขอบคุณ อาจาร์กิตติภูมิ วรฉัตร ที่เขียนบทเรียน php ไว้ที่ mcu1.psu.ac.th ในเรื่องบริการส่ง E-Mail และ www.worldzone.net ซึ่งให้บริการ free hosting ซึ่งบริการ php3 และที่สำคัญยังให้บริการ smtp ทำให้การเขียนบทเรียน การส่ง mail โดยใช้บริการ smtp นี้ ง่ายแทบไม่น่าเชื่อทีเดียว เพราะเขียนคำสั่ง บรรทัดเดียว ก็ส่ง mail ได้แล้วครับ
  2. การรับค่าจาก form ทำให้ผมตกใจไม่น้อย เพราะง่ายเหมือนไม่มีขั้นตอนอะไรเลย ต่างกับ asp และ perl ที่ต้องเขียนส่วนรับค่าจาก form ที่ยุ่งยากพอสมควร แต่ใน php3 นี้ นำตัวแปรเหล่านั้นไปใช้ได้เลย เหมือนกับเคยกำหนดไว้เรียบร้อยใน source อย่างนั้นเลยครับ
  3. ผมเชื่อว่าเมื่อศึกษามาก ๆ ขึ้นจะพบ อะไรที่ php3 ทำได้ง่ายจนน่าใจหาย เมื่อเทียบกับ php3 และ asp เป็นแน่ .. ถ้าไงก็ขอเชิญชวนให้มาใช้บริการ php3 กัน นะครับ
  4. สำหรับข้อความที่ถูกส่งออกไป ผมจะเพิ่มข้อความ 2 บรรทัดต่อท้าย เพื่อให้ผู้ที่รับ รู้ว่าข้อความนี้ เขาส่งมาจากเว็บใด โดยมีเหตุผล 2 ประการคือ ถ้าจะใช้เว็บหน้านี้ส่ง mail ผมก็ขออนุญาติ promote ไปด้วยในตัว และอีกประการคือ ผู้ที่รับจะได้รู้ว่า mail ที่เขาได้รับส่งมาจากหน้าเว็บใด ซึ่ง 2 บรรทัดที่ว่านั้นก็คือ
    ======
    Service by http://www.thaiall.com/php/tstmailw.htm

การเขียน form ส่ง E-Mail
ผลลัพธ์ที่ต้องการ Source code สำหรับสร้าง form เรียก tstmail.php3
form นี่ส่ง email ได้จริง

to:
from:
subject:
reply-to:
message:
<form method=post action=http://www.worldzone.net/internet/thaiall/tstmail.php3>
<br>to: <input type=text name=mto>
<br>from: <input type=text name=mfrom>
<br>subject: <input type=text name=msubj>
<br>reply-to: <input type=text name=mreply>
<br>message: <textarea name=message rows=5 cols=30></textarea>
<br><input type=submit value=sendmail>
</form>

โปรแกรมที่รับค่าจาก form ไปส่ง E-Mail
Source code เฉพาะส่วน ที่แสดงให้เห็นว่า แค่นี้ก็ส่ง mail ได้
<?
mail("to@thaiall.com","Is subject","helo\nmessage","from@thaiall.com" );
?>
OK
Source code ของ tstmailw.php
ซึ่งนำไปใช้ได้จริง และรับค่าจาก form ข้างบนนี้ ส่ง mail ให้อัตโนมัติ
โปรแกรม tstmailw.php ทำหน้าที่รับค่าจาก form ในหน้าเว็บนี้
แล้วนำค่าจากตัวแปรที่ถูกส่งมา ไปเป็น parameter สำหรับส่ง E-Mail เช่น ถึงใคร จากใคร เป็นต้น
แต่ถ้ามีการสั่งให้โปรแกรมนี้ประมวลผล โดยไม่มีการส่งตัวแปรมาให้
โปรแกรมจะทำหน้าที่กำหนดค่าเริ่มต้นให้ ดังที่ระบุ เช่น ส่ง mail ให้ burin@yonok.ac.th เป็นต้น
<?
if (empty($mto)){
$message = "hi\nthis is test\nthis is line.";
$mto = "burin@yonok.ac.th";
$msubj = "the subject";
$mfrom = "burin@thaiall.com";
$mreply = "burin@thaiall.com";
}
$message = $message."\n======\nService by http://www.thaiall.com/php/tstmailw.htm";
$txtfrom = "From: ".$mfrom."\nReply-To: ".$mreply."\nX-Mailer: PHP/" . phpversion();
mail($mto, $msubj, $message, $txtfrom );
?>
<body bgcolor=#ffffff>
Sending completely
======
Service by http://www.thaiall.com/php/tstmailw.htm
</body>
Click here ดู source หรือ click ขวา เพื่อ download โปรแกรม tstmailw.php ได้

แบบฝึกหัด
    ให้ทำตามโจทย์ต่อไปนี้
  1. ให้เขียนโปรแกรมตามตัวอย่างข้างบนนี้ ให้ใช้งานได้
  2. นำไปปรับปรุง เพื่อทำ form สำหรับส่ง mail ในเว็บของท่าน ให้ยืดหยุ่น เช่น เพิ่มคำกลอน ขึ้นต้น หรือลงท้าย เป็นต้น
ผู้สนับสนุน + ผู้สนับสนุน
+ รับผู้สนับสนุน

แนะนำเว็บใหม่ : ผลการจัดอันดับ
รักลำปาง : thcity.com : korattown.com : topsiam.com : มหาวิทยาลัยโยนก
ศูนย์สอบ : รวมบทความ : ไอทีในชีวิตประจำวัน : ดาวน์โหลด : yourname@thaiall.com
ติดต่อ ทีมงาน ชาวลำปาง มีฝันเพื่อการศึกษา Tel.08-1992-7223