ต้องรู้
- ตัวเลือกคลาส PHP: PHPmailer, SwiftMailer, Zend_Mail, XpertMailer, PEAR Mail
- PEAR Mail: หมายเหตุชื่อเซิร์ฟเวอร์เมล > ตรวจสอบว่าติดตั้ง PEAR Mail แล้ว > แก้ไขไฟล์ PHP โดยใช้ตัวอย่างที่ให้มา
บทความนี้อธิบายวิธีใช้การพิสูจน์ตัวตน SMTP เพื่อส่งอีเมลด้วยฟังก์ชัน PHP mail() ใน PEAR Mail
การส่งอีเมลด้วยฟังก์ชันเมล PHP
เมื่อคุณใช้ฟังก์ชัน PHP mail() คุณจะต้องส่งอีเมลจากเว็บเซิร์ฟเวอร์โดยตรงแทนที่จะเป็นเซิร์ฟเวอร์อีเมลของคุณ หากคุณมีเซิร์ฟเวอร์อีเมลผ่านโฮสต์เว็บของคุณ หรือแม้แต่เซิร์ฟเวอร์อีเมลที่มีโฮสต์อื่น มักจะดีกว่าที่จะส่งอีเมลผ่านโฮสต์นั้นแทน
ปัญหาคือฟังก์ชัน PHP mail() ไม่มีวิธีการส่งจดหมายผ่าน SMTP ในตัว หากคุณต้องการเปิดฟังก์ชันดังกล่าว คุณจะต้องติดตั้งคลาส PHP เพิ่มเติม
ตัวเลือกที่ใช้ได้มีดังนี้
- PHPmailer
- SwiftMailer
- Zend_Mail
- XpertMailer
- เมลแพร์
เราจะแสดงวิธีใช้ PEAR Mail ให้คุณดู แต่คุณสามารถใช้คลาสใดก็ได้ที่รองรับ SMTP
หากโฮสต์เว็บของคุณติดตั้งคลาสเหล่านี้ตั้งแต่หนึ่งคลาสขึ้นไป แสดงว่าอาจมีบทช่วยสอนที่เกี่ยวข้องกับสถานการณ์ของคุณ ถ้าใช่ ไปที่ชั้นเรียนที่คุณสามารถเข้าถึงได้
ใช้วิธีนี้เฉพาะเมื่อคุณใช้ PHP เพื่อสร้างแบบฟอร์มอีเมลที่กำหนดเอง หากคุณกำลังใช้ระบบจัดการเนื้อหา (CMS) เช่น WordPress ให้มองหาปลั๊กอินหรือฟังก์ชันในตัวเพื่อส่งอีเมลผ่าน SMTP แทนที่จะพยายามสร้างของคุณเอง
วิธีใช้ PEAR เพื่อส่งอีเมลผ่าน SMTP
- ตรวจสอบให้แน่ใจว่าโดเมนของคุณชี้ไปที่ระเบียน Mail Exchange (MX) ของโฮสต์เซิร์ฟเวอร์อีเมลของคุณและจดชื่อเซิร์ฟเวอร์อีเมลของคุณ ตัวอย่างเช่น อาจเป็น mail.yourdomain.net หรือ smtp.yourdomain.net.
- ตรวจดูว่า PEAR Mail ได้รับการติดตั้งบนเซิร์ฟเวอร์อีเมลของคุณแล้วหรือไม่
- หากไม่ได้ติดตั้ง PEAR Mail ให้ปรึกษากับโฮสต์เว็บเมลของคุณเพื่อขอคำแนะนำในการติดตั้ง
- เมื่อติดตั้ง PEAR Mail แล้ว ให้แก้ไขหนึ่งในไฟล์ PHP ตัวอย่างในส่วนต่อไปนี้เพื่อให้เหมาะกับความต้องการของคุณ
ตัวอย่างสคริปต์ PHP ของเมล PEAR สำหรับอีเมล SMTP
คุณสามารถสร้างสคริปต์ของคุณเองตั้งแต่เริ่มต้นได้หากต้องการ หรือแก้ไขตัวอย่างต่อไปนี้ตามที่คุณต้องการ ตรวจสอบให้แน่ใจว่าได้ป้อนชื่อเว็บเมลเซิร์ฟเวอร์ของคุณในตัวแปรโฮสต์ และใช้ข้อมูลการเข้าสู่ระบบสำหรับโฮสต์เว็บเมลของคุณในฟิลด์ชื่อผู้ใช้และรหัสผ่าน
require_once "Mail.php";
$from="ชื่อผู้ส่ง ";
$to="ชื่อผู้รับ ";
$ subject=" Subject Line Here: ";
$body=" ข้อความใด ๆ ที่คุณต้องการ ";
$host="yourmailhost.com";
$username="ชื่อผู้ใช้หรืออีเมลของคุณ"; $password="รหัสผ่านของคุณ";
$headers=array ('จาก'=> $จาก
'To'=> $to, 'Subject'=> $ subject);
$smtp=Mail::factory('smtp', array ('host'=> $host, 'auth'=> จริง
'ชื่อผู้ใช้'=> $ชื่อผู้ใช้
'รหัสผ่าน'=> $รหัสผ่าน));
$mail=$smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("
". $mail->getMessage()."
);
} อื่น ๆ {echo("
ส่งข้อความสำเร็จแล้ว!
);}
ตัวอย่างสคริปต์ PHP ของเมล PEAR สำหรับการตรวจสอบสิทธิ์ SMTP และการเข้ารหัส SSL
หากคุณต้องการใช้การตรวจสอบสิทธิ์ SMTP และการเข้ารหัส SSL คุณจะต้องแก้ไขตัวอย่างก่อนหน้านี้เล็กน้อย คุณจะต้องชี้ตัวแปรโฮสต์ไปที่เซิร์ฟเวอร์อีเมล SSL และระบุหมายเลขพอร์ต เช่น 25, 465, 587, 2525 หรือ 8025 โปรดติดต่อโฮสต์เว็บเมลของคุณเพื่อขอข้อมูลเพิ่มเติม หากคุณไม่ทราบพอร์ตที่ต้องการ ใช้
require_once "Mail.php";
$from="ชื่อผู้ส่ง ";
$to="ชื่อผู้รับ ";
$ subject=" Subject Line Here: ";
$body=" ข้อความใด ๆ ที่คุณต้องการ ";
$host="ssl://yourmailhost.com";
$port="587"; $username="ชื่อผู้ใช้หรืออีเมลของคุณ";
$password="รหัสผ่านของคุณ";
$headers=array ('จาก'=> $จาก, ' ถึง'=> $to, 'Subject'=> $ subject);
$smtp=Mail::factory('smtp', array ('host'=> $host, 'port'=> $port, 'auth'=> true, 'username'=> $ชื่อผู้ใช้, 'password'=> $รหัสผ่าน));
$mail=$smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("
". $mail->getMessage()."
);
} อื่น ๆ {echo("
ส่งข้อความสำเร็จแล้ว!
);}