การส่งเมล์ด้วย PHPMailer
นอกจากนี้เรายังสามารถใช้โค้ดนี้ในการส่งอีเมล์ผ่าน 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 จากระบบ
}
?>