ตุลาคม 25, 2020, 02:16:18 PM *
ยินดีต้อนรับคุณ, บุคคลไม่รู้ว่าใคร กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
หน้า: [1]   ลงล่าง
  พิมพ์  
ใช้ PHP ส่ง E-mail ได้ในฟังก์ชันเดียว  (อ่าน 3914 ครั้ง)
ไร้คอนเซปต์ *** ออฟไลน์ ออฟไลน์ เพศ: ชาย พลังสะสม: 1669
พฤษภาคม 15, 2007, 01:28:49 PM
ผลงาน: 193
2t
แฟนคลับ
ไร้คอนเซปต์
***

ผลงาน: 193
ออฟไลน์ ออฟไลน์

เพศ: ชาย
พลังสะสม: 1669

เว็บไซต์
« เมื่อ: พฤษภาคม 15, 2007, 01:28:49 PM »
ใช้ PHP ส่ง E-mail ได้ในฟังก์ชันเดียว
 E-mail เป็นบริการหนึ่งของ Internet ที่ได้รับความนิยมสูงสุด ด้วยความสะดวก รวดเร็ว และประหยัดในการส่งข้อความ ข้อมูล ทำให้ E-mail กลายเป็นสิ่งที่มีความจำเป็นอีกสิ่งหนึ่งในการติดต่อสื่อสาร

 PHP เป็นอีกภาษาหนึ่งที่มีความสามารถในการส่ง E-mail ทำให้ผู้เขียน PHP สามารถทำการส่ง E-mail ได้ง่ายดาย ด้วยการทำงานเพียงแค่ใช้ฟังก์ชันเพียงฟังก์ชันเดียว

 เราจะลองดูวิธีการกันครับ

 รูปแบบ

mail( [To], [Subject], [Message], [Header] );

 ความหมาย;

To : ข้อความใช้ระบุ E-mail Address ของผู้รับ
Subject : ข้อความ ใช้ระบุ Subject ที่ใช้ในการส่ง
Message : ข้อความ ใช้ระบุข้อความของ E-mail
Header : ข้อความ ใช้ระบุรายละเอียดต่าง ๆ ของ E-mail เช่น From: จาก E-mail ของผู้ส่ง , CC : สำเนา , BCC : สำเนาแบบซ่อน เป็นต้น

 โดยในส่วนของ Header ไม่จำเป็นต้องระบุก็ได้ครับ ...

 ดังนั้นจากรูปแบบเราสามารถเขียนเป็นโปรแกรมส่ง E-mail แบบง่าย ๆ ได้ดังนี้ครับ

<?php
    mail( "webmaster@nachiengmai.net", "ทดสอบ", "ทดสอบการส่ง E-mail" );
?>


 ขอย้ำว่าแค่นี้ก็ใช้ส่งเมล์ได้ จริง ๆ นะครับ ... จะเห็นว่าง่ายมากเลย

 ทีนี้เราลองมาดูโปรแกรมตัวอย่างต่อไปที่จะแสดงให้เห็นความสามารถของฟังก์ชัน mail() อย่างเต็มรูปแบบครับ ... ตามนี้

<?php
    //กำหนดชื่อ และ E-mail Address ของผู้รับ
    $reci = "NaChiengmai.NET Webmaster  <webmaster@nachiengmai.net>";
     
    //กำหนด Subject ของ E-mail
    $subj = "ทดสอบการส่ง E-mail จากภาษา PHP";
     
    //กำหนดเนื้อความของ E-mail
    $mess = "สวัสดีครับ\n\n:";
    $mess .= "\t ขณะนี้ท่านกำลังอ่าน E-mail ที่ส่งด้วยการเขียนโปรแกรม PHP\n";
    $mess .= "ที่ใช้ง่ายมากเลยครับ";
     
    //กำหนดส่วนของ Header
    $head = "From: Wacharapong <wacharapong@nachiengmai.net>\n";
    $head .= "cc: Bhumi-rawich <bhumi@nachiengmai.net>\n";
    $head .= "bcc: Chanyabhat <bhat@nachiengmai.net>\n";
     
    //เอาค่าที่เราตั้งไว้ทำการส่ง
    mail( $reci, $subj, $mess, $head )
        or print "ไม่สามารถส่ง E-mail ได้";
?>


 คำอธิบายหลัก ๆ อยู่ Code แล้วล่ะครับ ... นอกจากนั้นก็ ...

 เราจะใช้ .= ในการเชื่อมข้อความ 2 ข้อความ ... จำได้ไม๊ครับ ???

 ส่วน \n จะใช้ในการขึ้นบรรทัดใหม่ และ \t จะทำการ Tab ไป 1 Tab ครับ ... ซึ่งทั้ง 2 ตัวจะแทรกอยู่ได้ระหว่างเครื่องหมาย " " เลย

 ในส่วนของ Header นั้น อย่างที่บอกว่าจะมีหรือไม่มีก็ได้ครับ ... ถ้ามี ก็ไม่จำเป็นจะต้องมีครบ เช่น ต้องการแค่ระบุ From ก็ไม่ต้องใส่ CC และ BCC เป็นต้นครับ



 จากตัวอย่าง จะทำให้เราสามารถประยุกต์ทำการส่ง E-mail ผ่านหน้าเว็บได้ครับ โดยที่เราจะสร้างเอกสาร 2 ตัวด้วยกัน

 ตัวแรกเป็นเอกสารที่มีแบบฟอร์มเพื่อให้เรากรอกข้อความต่าง ๆ ซึ่งไม่จำเป็นต้องมีนามสกุลเป็น PHP แต่อาจจะเป็น HTML ธรมมดาก็ได้ครับ

 เอกสารที่ 2 จะทำการรับค่าต่าง ๆ จากเอกสารที่ 1 มาทำการส่ง E-mail ... ลองทำดูครับ

 Code ของเอกสารที่ 1 ผมตั้งชื่อว่า mail.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>แบบฟอร์มส่ง E-mail ด้วย PHP</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874">
</head>

<body>
<form name="form1" method="post" action="mail.php">
  <table width="329" border="1" cellspacing="2" cellpadding="5">
    <tr>
      <td width="92">To :</td>
      <td width="205"><input name="reci" type="text" id="reci"></td>
    </tr>
    <tr>
      <td>Subject :</td>
      <td><input name="subj" type="text" id="subj"></td>
    </tr>
    <tr>
      <td>From:</td>
      <td><input name="from" type="text" id="from"></td>
    </tr>
    <tr>
      <td>CC :</td>
      <td><input name="cc" type="text" id="cc"></td>
    </tr>
    <tr>
      <td>BCC :</td>
      <td><input name="bcc" type="text" id="bcc"></td>
    </tr>
    <tr>
      <td>Message :</td>
      <td><textarea name="mess" id="mess"></textarea></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input type="submit" name="Submit" value="ส่ง">
        <input type="reset" name="Submit2" value="ล้างฟอร์ม"></td>
    </tr>
  </table>
</form>
</body>
</html>


โดยที่ข้อมูลจากแบบฟอร์มนี้จะถูกส่งไปให้กับเอกสารชื่อ mail.php ตามที่ระบุไว้ในบรรทัดของ FORM ที่ว่า ... action = "mail.php" ...
 ดังนั้นเราจึงจะต้องสร้างเอกสารที่สอง ที่ใช้ในการรับค่าจาก mail.html เพื่อทำการส่งเมล์ โดยใช้ชื่อว่า mail.php ครับ ... Code เป็นแบบนี้

<?php
    //สร้างตัวแปรใหม่เพื่อรับค่า Header
    $nhead = "";
     
    //เช็คว่า Header ตัวใดที่ทำการกรอกมาบ้าง
    if $from != ""
        nhead .= $from . "\n";
    if $cc != ""
        nhead .= $cc . "\n";
    if $bcc != ""
        nhead .= $bcc . "\n";
     
    //ทำการส่ง
    if $nhead != "" {
        mail( $reci, $subj, $mess, $nhead )
            or print "ไม่สามารถส่ง E-mail ได้";
        }
    else {
        mail( $reci, $subj, $mess, )
            or print "ไม่สามารถส่ง E-mail ได้";
        }
?>

 Code นี้จะทำการตรวจสอบว่า Header มีการกรอกมาหรือไม่ ถ้า Header ตัวไหนไม่ได้กรอกมาก็จะทำการตัดออก หรือถ้าไม่ได้มีการกรอก Header มาเลยแม้แต่ตัวเดียวก็จะไม่ส่ง Header ไปครับ

 แต่ Code นี้ยังไม่สมบูรณ์นัก เนื่องจากยังไม่ได้มีการตรวจสอบการกรอกข้อมูล ว่าตัวไหนต้องกรอกบ้าง เอาเป็นว่ากรอกให้ครบก็แล้วกันครับ ส่วน From , CC , BCC ไม่ต้องกรอกก็ได้ ... ทดสอบเฉย ๆ นะครับ

 รับรองว่าถึงที่หมาย ... ไร้ปัญหาแน่ ...

 ตรงนี้ผมไม่ได้เปิดให้ท่านทดสอบว่าส่งได้จริงหรือ ??? ... กลัวผู้ไม่หวังดีจะมาทดสอบด้วยนะครับ ... เดี๋ยวโดนซิวข้อหา ต้นตอ SPAM !!!

โดย ecurriculum.mv.ac.th


ผ่านพ้นคืนวันที่ทำเพื่อชาติ
อีกกี่วันคืนจะได้ทำเพื่อตัวและหัวใจ
หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป:  

Powered by MySQL Powered by PHP Valid XHTML 1.0! Valid CSS!