สรุปแนวทางในการเขียนโปรแกรม เพื่อส่งเมล การส่งเมล ออกจากโปแกรมเป็นเรื่องจำเป็นและมีการใช้งานกันมา สำหรับ 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 = "[email protected]";
$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 = "[email protected]";
 
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 = " [email protected]"; // ชื่อ E-mail ที่เราสร้างไว้
$mail->Password = "xxxxx"; // รหัสผ่าน
$mail->From = "เมลผู้ส่ง"; // เช่น [email protected]
$mail->FromName = "ชื่อผู้ส่ง";
$mail->Subject = "หัวข้ออีกเมล";
$mail->Body = "ข้อความที่จะส่ง เป็น html ก็ได้";
$mail->AddAddress("e-mail ผู้รับ", "ชื่อผู้รับ"); // ใส่ email ผู้รับอย่างเดียวก็ได้
$mail->Send(); // ส่งเมลออก 


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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
Mg90s Servo เฟืองเหล็ก motor Version อัพเกรดเฟือง ตัวนี้หมุนครึ่งรอบ 180 องศา
โดย mindphp อ 31 ธ.ค. 2023 8:27 pm บอร์ด IOT - Internet of things
0
1623
อ 31 ธ.ค. 2023 8:27 pm โดย mindphp View Topic Mg90s Servo เฟืองเหล็ก motor Version อัพเกรดเฟือง ตัวนี้หมุนครึ่งรอบ 180 องศา
ชุดข้อต่อ Servo Bracket เป็นโลหะวัสดุทนมาก ไว้ใช้คู่กับ Servo สำหรับทำแขนหมุน
โดย mindphp อ 31 ธ.ค. 2023 8:26 pm บอร์ด IOT - Internet of things
0
1477
อ 31 ธ.ค. 2023 8:26 pm โดย mindphp View Topic ชุดข้อต่อ Servo Bracket เป็นโลหะวัสดุทนมาก  ไว้ใช้คู่กับ Servo สำหรับทำแขนหมุน
วงจรลดแรงดัน แบบมีหน้าจอแสดงกำลังไฟฟ้า - LM2596 DC-DC Buck Converter Step Down Module Arduino
โดย mindphp อ 31 ธ.ค. 2023 8:24 pm บอร์ด IOT - Internet of things
0
1486
อ 31 ธ.ค. 2023 8:24 pm โดย mindphp View Topic วงจรลดแรงดัน แบบมีหน้าจอแสดงกำลังไฟฟ้า - LM2596 DC-DC Buck Converter Step Down Module Arduino
บอร์ด UNO R3 แบบ SMD ราคาต่ำกว่าสองร้อย
โดย mindphp อ 31 ธ.ค. 2023 8:04 pm บอร์ด IOT - Internet of things
1
1463
อ 31 ธ.ค. 2023 8:06 pm โดย mindphp View Topic บอร์ด UNO R3 แบบ SMD  ราคาต่ำกว่าสองร้อย
แนะนำ ISD1820 โมดูลบันทึกเสียง Arduino ใช้ได้กับ ESP8266 ESP32
โดย mindphp อ 31 ธ.ค. 2023 8:02 pm บอร์ด IOT - Internet of things
0
1439
อ 31 ธ.ค. 2023 8:02 pm โดย mindphp View Topic แนะนำ ISD1820 โมดูลบันทึกเสียง Arduino ใช้ได้กับ ESP8266 ESP32
ทำไมทำ Wordpress บน localwp มันช้าครับ ช้ากว่าทำบนโฮสต์จริง
โดย Anonymous อ 31 ธ.ค. 2023 4:20 pm บอร์ด สอบถามปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
0
432
อ 31 ธ.ค. 2023 4:20 pm โดย บุคคลทั่วไป View Topic ทำไมทำ Wordpress บน localwp มันช้าครับ ช้ากว่าทำบนโฮสต์จริง
ลดหย่อนภาษีได้ปี 67 สูงสุด 50,000 มีเงือนไขอย่างไรมาดุ
โดย Anonymous อ 31 ธ.ค. 2023 10:37 am บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
0
434
อ 31 ธ.ค. 2023 10:37 am โดย บุคคลทั่วไป View Topic ลดหย่อนภาษีได้ปี 67 สูงสุด 50,000 มีเงือนไขอย่างไรมาดุ
เซ็นเซอร์ตรวจจับเสียง เอาไปใช้ทำอะไรได้บ้าง ทำโปรเจ็ค IOT
โดย Anonymous ส 30 ธ.ค. 2023 4:28 am บอร์ด IOT - Internet of things
2
835
ส 30 ธ.ค. 2023 10:48 pm โดย mindphp View Topic เซ็นเซอร์ตรวจจับเสียง เอาไปใช้ทำอะไรได้บ้าง ทำโปรเจ็ค IOT