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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
padding ต่างจาก margin อย่างไร
โดย champp พฤ 07 พฤษภาคม 2020 4:49 pm บอร์ด CSS Knowledge
0
169
พฤ 07 พฤษภาคม 2020 4:49 pm โดย champp
IR infrared obstacle detection sensor คืออะไร
โดย champp พฤ 07 พฤษภาคม 2020 4:16 pm บอร์ด IOT - Internet of things
0
83
พฤ 07 พฤษภาคม 2020 4:16 pm โดย champp
ตู้จดหมายแจ้งเตือนผ่านไลน์ได้อย่างไร
โดย champp พฤ 07 พฤษภาคม 2020 3:58 pm บอร์ด IOT - Internet of things
0
147
พฤ 07 พฤษภาคม 2020 3:58 pm โดย champp
วิธีการบันทึกข้อมูลหลายตารางพร้อมกัน
โดย champp พฤ 07 พฤษภาคม 2020 3:39 pm บอร์ด PHP Knowledge
0
1758
พฤ 07 พฤษภาคม 2020 3:39 pm โดย champp
R - เครียร์ข้อมูลทดสอบ ออกจากหน้าเว็บ
โดย mindphp พฤ 07 พฤษภาคม 2020 10:24 am บอร์ด OdooJob.com - Developer
0
1
พฤ 07 พฤษภาคม 2020 10:24 am โดย mindphp
เกษตรกรปลูกพืชเตรียมรับเงินเยียวยา มีขั้นตอนตรวจดังนี้
โดย thatsawan อ 05 พฤษภาคม 2020 5:20 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
148
พ 06 พฤษภาคม 2020 7:53 pm โดย arenaofblood
อัพเดทแบบดับเบิล! Joomla เวอร์ชั่น 3.9.17 กับ 3.9.18
โดย tsukasaz อ 05 พฤษภาคม 2020 2:18 pm บอร์ด MindPHP News & Feedback
0
126
อ 05 พฤษภาคม 2020 2:18 pm โดย tsukasaz
แนะนำเทคนิคการเล่นกีฬา หัวข้อแบตมินตัน
โดย champp อ 05 พฤษภาคม 2020 12:43 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
69
อ 05 พฤษภาคม 2020 12:43 pm โดย champp
แนวทางสร้าง การจัดเก็บแบบระบุตำแหน่ง
โดย tanapong จ 04 พฤษภาคม 2020 11:41 pm บอร์ด Programming - PHP
4
144
พ 13 พฤษภาคม 2020 8:38 pm โดย tanapong
TIP การใช้ SSL ของ cloudflare คู่กับ Let's Encrypt
โดย mindphp ส 02 พฤษภาคม 2020 8:17 pm บอร์ด Linux - Web Server
0
198
ส 02 พฤษภาคม 2020 8:17 pm โดย mindphp
กรมส่งเสริมการเกษตรเปิด "โครงการตู้เย็นข้างบ้านต้านภัย COVID-19" สนับสนุนเมล็ดพันธุ์พืชผักสวนครัวให้แก่เกษตรกรและประชาชน
โดย thatsawan ส 02 พฤษภาคม 2020 2:58 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
146
ส 02 พฤษภาคม 2020 2:58 pm โดย thatsawan
วิธีการจัดรูปแบบเลขบัตรประชาชนที่กรอกอัตโนมัติ
โดย Ittichai_chupol ศ 01 พฤษภาคม 2020 5:48 pm บอร์ด Jquery & Ajax Knowledge
0
263
ศ 01 พฤษภาคม 2020 5:48 pm โดย Ittichai_chupol
ปรับรูปภาพ fandeedee
โดย numtan5839 ศ 01 พฤษภาคม 2020 11:29 am บอร์ด FDD (Main)
29
167
พ 20 พฤษภาคม 2020 11:36 am โดย numtan5839
ปัญหา Deprecated: Function ereg() is deprecated ereg_replace()
โดย mindphp ศ 01 พฤษภาคม 2020 2:54 am บอร์ด Programming - PHP
1
1050
ศ 01 พฤษภาคม 2020 4:35 am โดย mindphp
ประวัติความเป็นมาการแข่งเรือยาว
โดย baitoeijr1230 พฤ 30 เม.ย. 2020 9:39 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
210
อ 14 มิ.ย. 2020 12:36 am โดย Jesse00
วิธีการใช้งานตัว flask jwt เพื่อทำการ authenticate แบบใช้ Token ด้วย curl
โดย jirawoot พฤ 30 เม.ย. 2020 7:07 pm บอร์ด Python Knowledge
0
189
พฤ 30 เม.ย. 2020 7:07 pm โดย jirawoot
สร้าง slideshow หรือภาพสไลด์หน้าเว็บด้วย Module Product Slide ของ MooZiiCart
โดย prmindphp พ 29 เม.ย. 2020 6:34 pm บอร์ด MindPHP News & Feedback
1
118
พ 10 มิ.ย. 2020 4:36 pm โดย mindphp
วิธีการ Overrite การแจ้งเตือนเพื่อนำมาปรับแต่งใน Extension ของ phpbb
โดย Ittichai_chupol อ 28 เม.ย. 2020 7:01 pm บอร์ด PHP Knowledge
0
227
อ 28 เม.ย. 2020 7:01 pm โดย Ittichai_chupol
จะเขียน py ธรรมดาอ่านไฟล์ config ทำยังไงค่ะ
โดย thatsawan อ 28 เม.ย. 2020 4:42 pm บอร์ด Programming - C/C++ & java & Python
1
152
พฤ 30 เม.ย. 2020 11:00 am โดย jirawoot
ต้องการติดตั้ง psycopg2 ในเครื่อง windows 10 ยังไงค่ะ
โดย thatsawan อ 28 เม.ย. 2020 3:23 pm บอร์ด Programming - C/C++ & java & Python
11
232
อ 28 เม.ย. 2020 4:01 pm โดย thatsawan