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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
เงินดิจิตอล(Cryptocurrencies)เสียภาษีด้วยเมื่อมีกำไรหรือประโยชน์
โดย taemmynatchapon จ 23 ก.ค. 2018 3:58 pm บอร์ด Share Knowledge
0
1
จ 23 ก.ค. 2018 3:58 pm โดย taemmynatchapon
เราจะส่งค่าไปบันทึกยังไงครับ
โดย mollyclick จ 23 ก.ค. 2018 3:37 pm บอร์ด Programming - PHP
1
10
จ 23 ก.ค. 2018 3:43 pm โดย tsukasaz
ยืนยันหน้าจอการทำงานของ แสดงจํานวนสินค้าในสตอคในหน้า PO ข้อที่ 7
โดย nuattawoot จ 23 ก.ค. 2018 1:30 pm บอร์ด Hachanna - Testter
0
6
จ 23 ก.ค. 2018 1:30 pm โดย nuattawoot
งานประจำวันที่ 23 กรกฏาคม 2561
โดย pprn จ 23 ก.ค. 2018 11:02 am บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
0
3
จ 23 ก.ค. 2018 11:02 am โดย pprn
Note
โดย Lamduan จ 23 ก.ค. 2018 10:42 am บอร์ด M066 - นางสาวลำดวน พันโอดเบี้ย
0
6
จ 23 ก.ค. 2018 10:42 am โดย Lamduan
Work's on Hand ลำดวน พันโอดเบี้ย M066
โดย Lamduan จ 23 ก.ค. 2018 10:41 am บอร์ด M066 - นางสาวลำดวน พันโอดเบี้ย
0
18
จ 23 ก.ค. 2018 10:41 am โดย Lamduan
งานประจำวันที่ 23 กรกฎาคม 2561
โดย Lamduan จ 23 ก.ค. 2018 10:29 am บอร์ด M066 - นางสาวลำดวน พันโอดเบี้ย
1
12
จ 23 ก.ค. 2018 10:39 am โดย Lamduan
งานประจำวันที่ 23 กรกฎาคม 2561
โดย prakon จ 23 ก.ค. 2018 10:28 am บอร์ด MT24 - นายปกรณ์ วิริยะธนวิโรจน์
1
5
จ 23 ก.ค. 2018 2:58 pm โดย prakon
งานประจำวันที่ 23 กรกฏาคม 2561
โดย tatiya จ 23 ก.ค. 2018 9:59 am บอร์ด M065 - ตติยะ นาชัย
0
2
จ 23 ก.ค. 2018 9:59 am โดย tatiya
B - ติดตั้งผังบัญชีไม่สมบูณ์ยังไม่ครบตามที่่ใช้งาน
โดย thatsawan อ 22 ก.ค. 2018 4:33 pm บอร์ด M.D.Soft Co.,Ltd. - Tester
0
2
อ 22 ก.ค. 2018 4:33 pm โดย thatsawan
B - ข้อมูลที่อยู่แปะไม่ครบในใบเสนอราคา
โดย thatsawan อ 22 ก.ค. 2018 4:06 pm บอร์ด M.D.Soft Co.,Ltd. - Tester
0
2
อ 22 ก.ค. 2018 4:06 pm โดย thatsawan
B - ติดตั้งเเล้ว ใหม่ error need to add a dependency on the parent class' module.
โดย thatsawan อ 22 ก.ค. 2018 2:27 pm บอร์ด M.D.Soft Co.,Ltd. - Tester
0
2
อ 22 ก.ค. 2018 2:27 pm โดย thatsawan
B - MDUpgrade อัพเกรด Joomla 2.5.28 เป็น 3.8 แล้วมีการอัพโหลดอยู่นานมาก
โดย Parichat ส 21 ก.ค. 2018 7:10 pm บอร์ด Joomla Dev
2
14
จ 23 ก.ค. 2018 11:38 am โดย Parichat
นักฟุตบอลเสียภาษีอย่างไรบ้าง?
โดย taemmynatchapon ส 21 ก.ค. 2018 6:19 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
28
ส 21 ก.ค. 2018 6:19 pm โดย taemmynatchapon
google dive โหลดไฟล์ PDF ไม่ได้ เด้งไปไหนไม่รู้ หน้าขาวๆ
โดย thatsawan ส 21 ก.ค. 2018 1:45 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
17
ส 21 ก.ค. 2018 1:45 pm โดย thatsawan
'งานประจำวันที่ 21 กรกฎาคม 2561
โดย tatiya ส 21 ก.ค. 2018 10:09 am บอร์ด M065 - ตติยะ นาชัย
1
4
ส 21 ก.ค. 2018 7:13 pm โดย tatiya
ช่วยแนะนำ mysqli หน่อยครับ จะเปลี่ยนยังไงครับ
โดย mollyclick ส 21 ก.ค. 2018 7:34 am บอร์ด Programming - PHP
1
157
จ 23 ก.ค. 2018 3:35 pm โดย mollyclick
สอบถามเรื่องการแสดงค่าหน่อย
โดย zinptin ศ 20 ก.ค. 2018 9:06 pm บอร์ด Programming - PHP
0
66
ศ 20 ก.ค. 2018 9:06 pm โดย zinptin
Demo M2OpenERP
โดย tsukasaz ศ 20 ก.ค. 2018 4:02 pm บอร์ด M2OpenERP
0
5
ศ 20 ก.ค. 2018 4:02 pm โดย tsukasaz
Q - ไม่สามารถอัพไฟล์ขึ้น git lab ได้
โดย prakon ศ 20 ก.ค. 2018 1:44 pm บอร์ด Programming - PHP
1
42
ศ 20 ก.ค. 2018 2:12 pm โดย tsukasaz