ติดตั้ง phpMailer เพื่อส่งเมล์ผ่าน SMTP


หน้าแรก PHP MySQL เกร็ดความรู้ ติดตั้ง phpMailer เพื่อส่งเมล์ผ่าน SMTP
     เนื่องจาก Function Mail() ใน php เป็นช่องโหว่หลักในการถูกใช้ส่ง spam mail โดยอาศัยการโจมตีผ่าน script php ที่ไม่มีการป้องกัน หรือ มีการตรวจสอบที่ไม่รัดกุมพอ ทางเราจึงจำเป็นต้องปิดการใช้งาน function mail() ใน php  ซึ่งโดยปกติแล้วระบบสำเร็จรูปต่างๆจะรองรับการส่งเมล์ทั้งในแบบ mail() และ SMTP ดังนั้นท่านจึงสามารถเข้าไปแก้ไขการตั้งค่าของระบบได้ง่ายๆ โดยเข้าไปตั้งค่าเปลื่ยนจาก mail เป็น smtp และกำหนดค่า username และรหัสผ่าน ของท่านให้ถูกต้อง



ตัวอย่างการตั้งค่า smtp ใน joomla
 

อย่างไรก็ดีหากระบบที่ท่านใช้งานไม่รองรับท่านสามารถ downlaod ไฟล์ phpmailer ไปใช้งานได้โดยการแก้ไข code ในส่วนการส่งเมล์ดังนี้ โดยให้ท่าน uplaod ไฟล์ class.xxx.php ขึ้นไปไว้บน server ใน path เดียวกับไฟล์ที่ใช้ส่งเมล์ของเดิม จากนั้นทำการแก้ไข code

แก้ไขจาก

mail( $to, $subject, $message, $headers);

เป็น

require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->IsHTML(true); //หากส่งในรูปแบบ html ถ้าส่งเป็น text ก็ลบบรรทัดนี้ออกได้
$mail->CharSet = "utf-8"; //กำหนด charset ของภาษาในเมล์ให้ถูกต้อง เช่น tis-620 หรือ utf-8

$mail->Host = "localhost"; // SMTP server
$mail->SMTPAuth = "true";
$mail->Username = "name@yourdomain.com"; // ชื่อ emil ที่ท่านใช้ login ควรสร้าง email user แยกต่างหากเพื่อใช้ส่งเมล์จากเว็บโดยเฉพาะเพื่อให้ตรวจสอบได้ง่าย
$mail->Password = "password"; // รหัสผ่านของ email ที่ระบุด้านบน

$mail->From = $from; // ผู้รับจะเห็นอีเมล์นี้เป็น ผู้ส่งเมล์
$mail->FromName = $from; // ผู้รับจะเห็นชื่อนี้เป็น ชื่อผู้ส่ง
$mail->AddAddress($to);
$mail->Subject = $subject;
$mail->Body = $message;

$mail->Send();



ขึ้นไปด้านบน