สำหรับเนื้อหาในตอนนี้ เราจะแนะนำเครื่องมือ สำหรับทดสอบการส่งอีเมล
ใน localhost (ไม่ได้รวมถึงการส่งออกไปยังอีเมลภายนอก อย่าง gmail yahoo hotmail)
เพื่อให้เราสามารถดูรูปแบบ หรือกำหนดค่าต่างๆ ในการส่งอีเมล ก่อนนำไปใช้งานจริง
ก่อนอื่นถ้าใครยังไม่ได้ติดตั้ง xampp ให้ดูเนื้อหาต่อไปนี้ก่อน เนื่องจาก mercury จะ
ให้เราติตั้ดมาในขั้นตอนของการติดตั้ง xampp
ติดตั้ง xampp จำลอง server สำหรับนักพัฒนาเว็บด้วย php
https://www.ninenik.com/content.php?arti_id=660 via @ninenik
การตั้งค่า mercury/32 ใน xampp
สำหรับการตั้งค่าการใช้งาน mercury/32 สามารถทำได้ง่ายตามขั้นตอนต่อไปนี้
1. ให้กด Start เปิดการทำงาน mercury/32 แล้ว คลิกที่เมนู Admin
2. เมื่อเปิด Mercury/32 ขึ้นมาจะมีหน้าต่างๆ ส่วนจัดการหลายอันแสดงอยู่ในส่วนของโปรแกรม
ตามรูป ให้ปิดไปให้หมดได้เลย (หรือไม่ต้องสนใจ ปล่อยไว้ก็ได้ แต่ในตัวอย่างจะปิดไปทั้งหมดก่อน)
3. สร้างผู้ใช้งานใหม่ ในที่นี้ก็คือ อีเมล ที่เราจะทำการส่งอีเมลถึง โดยไปที่เมนู
Configuration > Manage local users.... ตามรูป
4. ในที่นี้เราจะสร้าง user ขึ้นมาอีก หนึ่ง โดยกำหนดค่าตามนี้
Username: demo
Personal nam: Demo User
Mail password: test
APOP secret: test
ดังรูป
โดย user demo เราจะให้เป็นอีเมล ที่เราจะส่งถึง ส่วนอีเมลผู้ส่ง
เราจะใช้ postmaster ซึ่งเป็น user ที่มีมาแล้วในระบบ หรือถ้ายังไม่มี
ก็ให้เราเพิ่มเข้าไป
5. ตั้งค่าต่างๆ ตามลำดับ ตามรูปต่อไปนี้
1. Configuration > Mercury core module
แท็บ General
แท็บ Local domain (เพิ่มค่าตามรุูป ถ้าไม่มีให้กดปุ่ม add new domain)
2. Configuration > Aliases...
(ถ้าไม่มีค่าให้เพิ่มโดยกดที่ปุ่ม Add new alias)
3. Configuration > Mercury SMTP Server
4. Configuration > Mercury POP3 Server
5. Configuration > Mercury SMTP Client
6. Configuration > Mercury POP3 Client
เป็นอันเสร็จเรียบร้อยสำหรับการตั้งค่า mercury/32 ใน xampp
สำหรับเนื้อหาในตอนนี้ เราจะไม่มีการทอสอบส่งอีเมลในรูปแบบ SMTP
แต่จะส่งผ่ายฟังก์ชั่น mail ปกติ เนื่องจากการจำลองใน localhost สำหรับ
การใช้งาน SMTP นั้นค่อนข้างยาก และอาจติดเงื่อนไขของแต่ละเครื่องแตกต่างกัน
การตั้งค่า account ใน thunderbird เพิ่มรับอีเมล
สำหรับในการทดสอบนี้เราจะใช้โปรแกรม mozilla thunderbird ซึ่งเป็น
โปรแกรมสำหรับรับ ส่ง อีเมล โดยเราจะทำการเพิ่มผู้ใช้ที่เราสร้างที่ชื่อ demo
หากยังไม่มีโปรแกรมนี้ สามารถดาวน์โหลดได้ที่
หลังจากดาวน์โหลดมาแล้ว ทำการติดตั้งจนเสร็จและเปิดโปรแกรมขึ้นมา
จากนั้นให้กดปุ่ม alt จะมีเมนูขึ้นมาตามรูป ให้เราเลือก Tools > Account Settings
จากนั้นเลือกเมนู Account Actions > Add Mail Account...
กรอกข้อมูลไปตามรูป
- Demo
- demo@localhost.com
- test
เสร้จแล้วกดปุ่ม continue
รอสักครู่ โปรแกรมจะแจ้ง error อันนี้ไม่เป็นไร ให้เรากำหนดค่าใหม่ ตามรูป
จากนั้นให้กดปุ่ม Re-test หากไม่เกิดข้อผิดพลาด และการตั้งค่าใน mercury ถูกต้อง ปุ่ม
Done จะสามารถกดได้ ให้เรากดปุ่ม Done ตามรูป
จะมีการแจ้งเตือนขึ้นมา อันนี้ให้กด ยอมรับใน checkbox แล้วกดปุ่ม Done ต่อได้เลย
เพราะเป็นการแจ้งเตือนเรื่องการเข้ารหัสข้อมูล แต่ของเราเป็นแค่การทดสอบ
หลังจากกดปุ่ม Done แล้วก็กดปุ่ม Ok ออกจากหนัา Account Settings
หลักจากกลับมาที่หน้าโปรแกรมหลัก ให้เรากดที่ inbox เพื่อรอตรวจสอบ อีเมลเข้า จะได้
โปรแกรม thunderbird พร้อมสำหรับการทดสอบอีเมล
สร้างไฟล์ทดสอบส่งอีเมล บน localhost
ต่อไปให้เราทำการสร้างไฟล์ เช่น maildemo.php ไว้ใน localhost ที่ไหนก็ได้
ในตัวอย่างจะไว้ที่ localhost/demo โดยโค้ดสำหรับทดสอบของเราจะเป็นดังนี้
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <?php $to = "demo@localhost.com"; $to_user = "ผู้ใช้ Demo"; $subject = "สวัสดี ทดสอบส่งอีเมล!"; $from_user = "ผู้ใช้ Postmaster"; // ให้รองรับการแสดงภาษาไทยในโปรแกรม อ่านอีเมล $to_user = "=?UTF-8?B?".base64_encode($to_user)."?="; $from_user = "=?UTF-8?B?".base64_encode($from_user)."?="; $subject = "=?UTF-8?B?".base64_encode($subject)."?="; $body="รายละเอียดอีเมล ทดสอบส่ง <br>"; $body.="ใช้งาน mercury/32 ใน xampp ส่งอีเมลใน localhost <br>"; $body.="จากเว็บไซต์ <a href='https://www.ninenik.com'>www.ninenik.com</a> <br>"; $body.="<img src='https://www.ninenik.com/images/logo_01_Sat.gif' /><br>"; $headers = array(); $headers[] = "MIME-Version: 1.0"; $headers[] = "Content-type: text/html; charset=UTF-8"; $headers[] = "To: $to_user <$to>"; $headers[] = "From: $from_user <postmaster@localhost.com>"; //$headers[] = "Cc: Name CC <postmaster@localhost.com>"; //$headers[] = "Bcc: Name BCC <postmaster@localhost.com>"; //$headers[] = "Reply-To: Postmaster <postmaster@localhost.com>"; $headers[] = "Subject: $subject"; $headers[] = "X-Mailer: PHP/".phpversion(); if(mail($to, $subject , $body, implode("\r\n", $headers))){ echo("ส่งอีเมลเรียบร้อยแล้ว!"); }else{ echo("เกิดข้อผิดพลาด..."); } ?> </body> </html>
จากนั้นทดสอบรับโปรแกรม หากทำการส่งอีเมลสำหรับ จะแจ้งดังรูป
ต่อไปเรากลับมาที่โปรแกรมเปิดอีเมล mozilla thunderbird
กดที่ปุ่ม Get Messages หากไม่มีอะไรผิดพลาด เราจะได้รับอีเมล ที่เพิ่งส่งจาก
โปรแกรมทดสอบ ดังรุป
คลิกเปิดดูรุปแบบอีเมลที่เราส่ง
เป็นอันเสร็จเรียบร้อย กับการทดสอบส่งอีเมลบน localhost ด้วย mercury/32 ใน xampp