ให้เรตสมาชิก: 2 / 5

ดาวใช้งานดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

สรุปแนวทางในการเขียนโปรแกรม เพื่อส่งเมล การส่งเมล ออกจากโปแกรมเป็นเรื่องจำเป็นและมีการใช้งานกันมา สำหรับ Web application ระบบที่มีการส่งเมล ออกจากโปรแกรม เช่น ระบบสมัครสมาชิก ,ระบบแจ้งเมื่อลืมรหัสผ่าน, โปรแกรม ส่งข่าวสารให้สมาชิก หรือ การแจ้งเตือนต่างๆ เป็นสิ่งจำเป็นที่ต้องใช้เมลเซิฟเวอร์ แต่ปัญหาของ Programmer คือในขั้นตอนการพัฒนา เป็นเรื่องลำบากที่จะ test ส่งเมลเราต้องติดตั้ง Mail Server ก่อน หรือ อาจใช้ SMTP ของ ข้างนอก เช่น SMTP ของเว็บเอง หรือ SMTP ของ Gmail แต่นั่นไม่ใช่ทางแก้ปัญหา เพราะเราไม่ควรเอาเมลที่มีการใช้งานจริงๆ มา Test โปรแกรมที่เราสร้างขึ้นมา
มาดูทางออกกัน ถ้าเราจำลองเครื่องด้วย XAMPP จะมี Mail Server มาให้ แล้วคือ Mercury Mail Server ดูวิธีตั้งค่าได้ตามลิงค์ ทำให้เราเพิ่ม ทางเลือกในการทดสอบการส่งเมลได้


วิธีการทดสอบโปรแกรมส่งเมล (ไม่ต้องส่งเมลจริงออกข้างนอกให้วุ่นวายใจ แม้ไม่เชื่อมต่อเน็ตก็สามารถทดสอบ ส่งเมลได้)
1. ใช้ mailtodisk ของ XAMPP  โดยปกติ XAMPP เวอร์ชั่น 1.7 เป็นต้นมาจะมี sendmail_path
sendmail_path = "D:\xampp\mailtodisk\mailtodisk.exe"ตรงนี้จะเป็นตัวช่วยให้เราทดสอบการส่งเมลจาก php โดยใช้ฟังก์ชั่นเมล ได้
เช่นทดสอบเขียน php ส่งเมลแบบง่ายๆ

<?php
$from_name = "Mindphp.com";
$from_email = "demo@localhost.com";
$headers = "From: $from_name <$from_email>";
$body = "Hi, \nThis is a test mail from $from_name <$from_email>.";
$subject = "Test mail from Mindphp.com";
$to = "demo@localhost.com";
 
if (mail($to, $subject, $body, $headers)) {
  echo "success!";
} else {
  echo "fail...";
}
?>

เนื้อหาเมลที่เราส่งออกจากไปอยู่ที่
D:\xampp\mailoutput\
2. ใช้ SMTP ของ Localhost (ไม่ใช่ SMTP ของ Gmail นะครับ )
ทำไมลองใช้ smtp ของ Localhost ก็เพราะเพราะไม่ต้องการให้เมลที่เราทดสอบไปเป็นขยะในเมลที่ใช้งานจริง และเราจะทดสอบ ส่งออกมากแค่ไหนก็ไม่ต้องกลัวโดนแบนจากผู้ให้บริการ
การเขียน php เพื่อส่งเมลด้วย SMTP เราสามาถใช้ swiftmailer หรือ phpMailer
ตัวอย่าง การใช้ phpMailer กับ SMTP ของ Localhost ดูตัวอย่างการ ตั้งค่า และ Config Mail Server เพื่อทดลองส่ง ได้ที่ การตั้งค่า Mercury Mail Server เพื่อทดสอบการส่งเมล ด้วย SMTP ใน Localhost
require_once('class.phpmailer.php');
$mail = new PHPMailer();
$mail->IsHTML(true); // กำหนดให้ ส่งเป็น html
$mail->IsSMTP();
$mail->SMTPAuth = true; // enable SMTP authentication
// $mail->SMTPSecure = "ssl"; // sets the prefix to the servier
// $mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 25; // port ที่เราติดตั้ง Mail Server ไว้ด
$mail->Host = '127.0.0.1'; // IP ของ Localhost
$mail->Username = " deme@localhost.com"; // ชื่อ E-mail ที่เราสร้างไว้
$mail->Password = "xxxxx"; // รหัสผ่าน
$mail->From = "เมลผู้ส่ง"; // เช่น demo@localhost.com
$mail->FromName = "ชื่อผู้ส่ง";
$mail->Subject = "หัวข้ออีกเมล";
$mail->Body = "ข้อความที่จะส่ง เป็น html ก็ได้";
$mail->AddAddress("e-mail ผู้รับ", "ชื่อผู้รับ"); // ใส่ email ผู้รับอย่างเดียวก็ได้
$mail->Send(); // ส่งเมลออก

เท่านี้เราก็ลองใช้ Outlook หรือ ThunderBird

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
งานประจำวันที่ 16 ตุลาคม 2561
โดย tai14 อ 16 ต.ค. 2018 9:50 am บอร์ด MT26 - นางสาวอัครยุภา ยงยุทธ
0
1
อ 16 ต.ค. 2018 9:50 am โดย tai14
งานประจำวันที่ 16 ตุลาคม 2561
โดย nice_13 อ 16 ต.ค. 2018 9:48 am บอร์ด M071 - พิชญ์สินี คงจร
0
1
อ 16 ต.ค. 2018 9:48 am โดย nice_13
งานประจำวันที่ 16 ตุลาคม 2561
โดย Ittichai_chupol อ 16 ต.ค. 2018 9:39 am บอร์ด M070 - อิทธิชัย ชูผล
0
2
อ 16 ต.ค. 2018 9:39 am โดย Ittichai_chupol
วิธีแก้ปัญหา ปัญหา string conversion [phpBB Debug] PHP Notice: ใน phpBB 3
โดย mindphp จ 15 ต.ค. 2018 12:27 pm บอร์ด Programming - PHP
1
12
จ 15 ต.ค. 2018 12:28 pm โดย mindphp
Review C71 Barcode Mobile Computer Android 4G 1D&2D Scan Head HF RFID/NFC Fingerprint/Iris InfraRed/PSAM Camera/GPS
โดย Barcode Retail จ 15 ต.ค. 2018 12:09 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
13
จ 15 ต.ค. 2018 12:09 pm โดย Barcode Retail
Chainway C71 Barcode Mobile Computer Android 6.0 OS 4G/Dual-band WIFI 5.2'' IPS 1080P Screen 5000mAh Powerful Battery IP
โดย Barcode Retail จ 15 ต.ค. 2018 11:54 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
15
จ 15 ต.ค. 2018 11:54 am โดย Barcode Retail
Restore ฐานข้อมูลขนาดใหญ่ ที่ backup มาจาก mysqldump
โดย mindphp จ 15 ต.ค. 2018 11:53 am บอร์ด SQL Knowledge
0
54
จ 15 ต.ค. 2018 11:53 am โดย mindphp
งานประจำวันที่ 15 ตุลาคม 2561
โดย Ittichai_chupol จ 15 ต.ค. 2018 10:15 am บอร์ด M070 - อิทธิชัย ชูผล
1
7
จ 15 ต.ค. 2018 11:14 am โดย mindphp
php เมื่อเลือกข้อมูลใน select แล้ว text กรอกได้แค่อักษร
โดย pppp อ 14 ต.ค. 2018 1:51 pm บอร์ด JavaScript & Jquery Ajax
0
16
อ 14 ต.ค. 2018 1:51 pm โดย pppp
Q - วิธีการ Add Module แล้วในไปแสดงที่แถบเมนูในส่วนของหน้า ACP ในphpbb
โดย Ittichai_chupol ศ 12 ต.ค. 2018 5:50 pm บอร์ด Programming - PHP
9
71
ศ 12 ต.ค. 2018 6:43 pm โดย thatsawan
การทำไอศครีม กระทิ
โดย Ittichai_chupol ศ 12 ต.ค. 2018 5:14 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
25
ศ 12 ต.ค. 2018 5:14 pm โดย Ittichai_chupol
VDO - Module Search (โมดูล เสิร์ช) สำหรับค้นหาสินค้าในร้านค้า
โดย pprn ศ 12 ต.ค. 2018 5:14 pm บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
0
4
ศ 12 ต.ค. 2018 5:14 pm โดย pprn
การทำขนมตาล
โดย Ittichai_chupol ศ 12 ต.ค. 2018 5:13 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
23
ศ 12 ต.ค. 2018 5:13 pm โดย Ittichai_chupol
VDO - รีวิว Module Category (โมดูล แคตตากอรี่) สำหรับแสดงหมวดหมู่สินค้า
โดย pprn ศ 12 ต.ค. 2018 4:28 pm บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
0
3
ศ 12 ต.ค. 2018 4:28 pm โดย pprn
งานประจำวันที่ 12 ตุลาคม 2561
โดย nice_13 ศ 12 ต.ค. 2018 9:48 am บอร์ด M071 - พิชญ์สินี คงจร
1
4
ศ 12 ต.ค. 2018 8:29 pm โดย nice_13
งานประจำวันที่ 12 ตุลาคม 2561
โดย prakon ศ 12 ต.ค. 2018 9:47 am บอร์ด MT24 - นายปกรณ์ วิริยะธนวิโรจน์
1
6
ศ 12 ต.ค. 2018 6:58 pm โดย prakon
งานประจำวันที่ 12 ตุลาคม 2561
โดย pprn ศ 12 ต.ค. 2018 9:09 am บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
1
4
ศ 12 ต.ค. 2018 6:12 pm โดย pprn
งานประจำวันที่ 12 ตุลาคม 2561
โดย Ittichai_chupol ศ 12 ต.ค. 2018 9:01 am บอร์ด M070 - อิทธิชัย ชูผล
2
9
ศ 12 ต.ค. 2018 6:37 pm โดย thatsawan
การทำขนมฝอยทอง
โดย Ittichai_chupol พฤ 11 ต.ค. 2018 5:45 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
38
พฤ 11 ต.ค. 2018 5:58 pm โดย daday0807
VDO - รีวิว Module Cart (โมดูล คาร์ท) บอกจำนวนสินค้าและราคาสินค้าในตะกร้าผู้ใช้
โดย pprn พฤ 11 ต.ค. 2018 3:41 pm บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
0
5
พฤ 11 ต.ค. 2018 3:41 pm โดย pprn