GORAGOD.com

การส่งเมล์ด้วย PHPMailer

PHPMailer เป็น software ส่งเมล์ ด้วย PHP ซึ่งมีประสิทธิ์ภาพดีครับ สามารถส่งเมล์โดยไม่เข้าไปอยู่ใน Junk ของ Hotmail ได้ และยังสามารถส่งเมล์ได้ในแบบ HTML และ UTF-8 และนอกจากนี้ มันยังมีความสามารถในการแทรกไฟล์ไปกับ email ได้ด้วย

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