การส่งเมล์ด้วย PHPMailer
PHPMailer เป็น software ส่งเมล์ ด้วย PHP ซึ่งมีประสิทธิ์ภาพดีครับ สามารถส่งเมล์โดยไม่เข้าไปอยู่ใน Junk ของ Hotmail ได้ และยังสามารถส่งเมล์ได้ในแบบ HTML และ UTF-8 และนอกจากนี้ มันยังมีความสามารถในการแทรกไฟล์ไปกับ email ได้ด้วย
นอกจากนี้เรายังสามารถใช้โค้ดนี้ในการส่งอีเมล์ผ่าน Server อื่นได้ด้วย โดยการกำหนด mail Server ที่เรามีให้กับมัน ซึ่งผมใช้คำสั่งนี้ในการทดสอบ ส่งเมล์จาก localhost ไปยัง อีเมล์จริงๆบน internet ได้ โดยส่งผ่าน mail Server ของผมเอง
นอกจากนี้เรายังสามารถใช้โค้ดนี้ในการส่งอีเมล์ผ่าน Server อื่นได้ด้วย โดยการกำหนด mail Server ที่เรามีให้กับมัน ซึ่งผมใช้คำสั่งนี้ในการทดสอบ ส่งเมล์จาก localhost ไปยัง อีเมล์จริงๆบน internet ได้ โดยส่งผ่าน mail Server ของผมเอง
<?php
require_once( 'class.phpmailer.php');
$mail = new PHPMailer(true);
$mail->IsSMTP(); // telling the class to use SMTP
try {
$mail->Encoding = "quoted-printable";
$mail->CharSet = "utf-8";
$mail->SMTPSecure = ''; // กำหนดเป็น ssl ถ้าต้องการใช้ (Server ต้องรองรับโรโตคอลนี้)
$mail->Host = 'mail.domain.com'; // mail server ถ้าเป็นบน server ตัวเอง ใช้ localhost (default)
$mail->Port = '25'; // กำหนด mail port ถ้าไม่สามารถใช้ค่า (default 25)
$mail->SMTPAuth = true; // กำหนดเป็น true ถ้าส่งเมล์ผ่าน server อี่น หรือจำเป็นต้องใช้ รหัสผ่าน
$mail->Username = 'username'; // ชื่อและรหัสผ่านบน mail server ของคุณ
$mail->Password = 'password'; // ชื่อและรหัสผ่านบน mail server ของคุณ
$mail->AddReplyTo($replyto, $replyto); // email ตอบกลับเมื่อไม่สามารถส่งเมล์ถึง ปลายทางได้ no-reply@domain.com
$mail->AddAddress($mailto, $mailto); // ส่งเมล์ถึง, ถ้าต้องการส่งหาหลายคนพร้อมกันให้ใช้คำสั่งนี้หลายๆครั้ง (1 คำสั่งต่อ 1 รายชื่อ)
$mail->SetFrom($mailform, $mailform); // ส่งมาจาก
$mail->Subject = $subject; // หัวข้ออีเมล์
$mail->MsgHTML($msg); // ข้อความ (HTML)
// $mail->AddAttachment('image.gif'); // แทรกไฟล์พร้อมกับอีเมล์ สามารถแทรกได้พร้อมกันหลายไฟล์ (1 คำสั่งต่อ 1 ไฟล์)
$mail->Send();
echo "Message Sent OK"; // ส่งเมล์เรียบร้อย
}
catch (phpmailerException $e) {
echo $e->errorMessage(); // ข้อความ error จาก PHPMailer
}
catch (Exception $e) {
echo $e->getMessage(); // ข้อความ error จากระบบ
}
?>