บทความนี้สอนวิธีติดตั้ง PHPMailer ด้วย Composer เพื่อใช้สำหรับส่งอีเมลด้วยภาษา PHP โดยมีขั้นตอนดังนี้
1. ติดตั้ง Composer ก่อน กรณียังไม่ได้ติดตั้งแนะนำให้อ่านบทความนี้ก่อน
2. กรณีติดตั้ง Composer แล้วให้เปิด Command Prompt แล้วพิมพ์คำสั่งด้านล่าง โปรแกรม PHPMailer จะถูกดาวน์โหลดมาไว้ที่ตำแหน่ง ที่ทำงานใน Command Prompt
composer require phpmailer/phpmailer
3. กรณีติดตั้งสำเร็จจะขึ้นหน้าจอตามรูป (เวอร์ชั่นเปลี่ยนตามที่ติดตั้ง)
4. โปรแกรม PHPMailer จะอยู่ใน Folder vendor ให้คัดลอกทั้ง Folder vendor ไปวางไว้ที่เดียวกับโปรเจคเว็บไซต์ที่ต้องการใช้งาน และเขียนโค้ดเพื่อใช้งาน PHPMailer ได้เลย
ตัวอย่าง โค้ดส่งอีเมลด้วย PHPMailer
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require 'vendor/autoload.php';
$mail = new PHPMailer(true);
try {
//Server settings
$mail->SMTPDebug = SMTP::DEBUG_SERVER; //Enable verbose debug output
$mail->isSMTP(); //Send using SMTP
$mail->Host = 'mail.xxx.com'; //Set the SMTP server to send through
$mail->SMTPAuth = true; //Enable SMTP authentication
$mail->Username = 'yyy@xxx.com'; //SMTP username
$mail->Password = 'xxx'; //SMTP password
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; //Enable implicit TLS encryption
$mail->Port = 587; //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS`
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
$mail->CharSet = 'UTF-8';
$mail->setFrom('yyy@xxx.com', 'ชื่อผู้ส่ง'); // ส่งโดย
$mail->addAddress('yyy@xxx.com', 'ชื่อผู้รับ'); // ผู้รับ
//Content
$mail->isHTML(true);
$mail->Subject = 'หัวข้อ';
$mail->Body = 'ข้อความ';
$mail->send();
echo 'อีเมลส่งสำเร็จ';
} catch (Exception $e) {
echo "อีเมลส่งไม่ได้เนื่องจาก: {$mail->ErrorInfo}";
}
?>
ส่วนที่ต้องแก้ไข
1. $mail->Host = 'mail.xxx.com' แก้เป็นชื่อโดเมนของตัวเอง เช่น mail.ชื่อโดเมน.com
2. $mail->Username = 'yyy@xxx.com' แก้เป็นอีเมลของโดเมน เช่น support@ชื่อโดเมน.com
3. $mail->Password = 'xxx' แก้เป็นรหัสผ่านของอีเมล ของข้อ 2.
4. $mail->setFrom('yyy@xxx.com', 'ชื่อผู้ส่ง') แก้เป็นอีเมลที่ทำหน้าที่ส่ง (ต้นทาง) และชื่อผู้ส่ง เปลี่ยนตามที่ต้องการ
5. $mail->addAddress('yyy@xxx.com', 'ชื่อผู้รับ') แก้เป็นอีเมลที่รับ (ปลายทาง) และชื่อผู้รับ เปลี่ยนตามที่ต้องการ
ตัวอย่าง PHPMailer ส่งอีเมลบน localhost และ Server ด้วย SMTP ของ Gmail