ให้เรตสมาชิก: 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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ืNote
โดย Duanghathai Termtem จ 30 พ.ย. 2020 4:29 pm บอร์ด MT40
0
1
จ 30 พ.ย. 2020 4:29 pm โดย Duanghathai Termtem
วิธีการเดินทางจากกระบี่มากรุงเทพมหานคร
โดย Duanghathai Termtem จ 30 พ.ย. 2020 3:46 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
13
จ 30 พ.ย. 2020 3:46 pm โดย Duanghathai Termtem
การใช้ Canva ช่วยการนำเสนอ
โดย Duanghathai Termtem จ 30 พ.ย. 2020 3:13 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
10
จ 30 พ.ย. 2020 3:13 pm โดย Duanghathai Termtem
Work''s on hand ดวงหทัย MT40
โดย Duanghathai Termtem จ 30 พ.ย. 2020 12:38 pm บอร์ด MT40
0
2
จ 30 พ.ย. 2020 12:38 pm โดย Duanghathai Termtem
list ความรู้ที่มี ว่าเคยเรียน หรือ เคยทำงานอะไรมาบ้าง
โดย Duanghathai Termtem จ 30 พ.ย. 2020 12:35 pm บอร์ด MT40
2
21
จ 30 พ.ย. 2020 6:20 pm โดย thatsawan
งานประจำวันที่ 30 พฤศจิกายน 2563
โดย Duanghathai Termtem จ 30 พ.ย. 2020 12:05 pm บอร์ด MT40
0
37
จ 30 พ.ย. 2020 12:05 pm โดย Duanghathai Termtem
ภาษี หัก ณ ที่จ่าย บน ERP
โดย milk2533 ส 28 พ.ย. 2020 4:17 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
20
ส 28 พ.ย. 2020 4:17 pm โดย milk2533
ประโยชน์ของการใช้ปุ่ม Sendmail บน ERP
โดย milk2533 ส 28 พ.ย. 2020 1:40 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
10
ส 28 พ.ย. 2020 1:40 pm โดย milk2533