สอน codeigniter ติดตั้งไลบรารี่และส่งอีเมลด้วย PHPMailler
การส่งอีเมลเป็นฟังก์ชั่นการทำงานอีกส่วนหนึ่งที่มักจะมีในขั้นตอนของการพัฒนาเว็บไซต์ ตัวอย่างเช่นการส่งอีเมล
สำหรับแบบฟอร์มติดต่อเรา ส่งอีเมลเพื่อแจ้งข่าวสาร การสมัครสมาชิก การสั่งซื้อ หรือแม้แต่ Email Marketing
สำหรับวิธีการส่งอีเมลใน codeigniter framework เราสามารถใช้คลาส Email library ที่ติดมากับ
framework ได้เลยหรือจะทำการติดตั้ง PHPMailer ซึ่งเป็นไลบรารี่สำหรับส่งอีเมลด้วยภาษา PHP ที่ได้รับความนิยม
มากที่สุดเข้าไปในส่วน libraries ก็สามารถทำได้เช่นกัน
ส่งอีเมลด้วย Email library ของ Codeigniter
- 1. ทำการโหลด Email library เข้ามาใช้งานใน Controller
$this->load->library('email');
- 2. ระบุข้อมูลสำหรับส่งอีเมล ผู้ส่ง ผู้รับ ข้อความ เป็นต้น ดังนี้
$this->email->from('[email protected]', 'Your Name'); $this->email->to('[email protected]'); $this->email->cc('[email protected]'); $this->email->bcc('[email protected]'); $this->email->subject('หัวข้ออีเมล'); $this->email->message('ข้อความเนื้อหาในอีเมล'); $this->email->send(); // คำสั่งเริ่มส่งอีเมล
- 3. เราสามารถตั้งค่าการส่งอีเมลต่าง ๆ ได้ด้วยเมธอด initizlize()
$config['protocol'] = 'sendmail'; $config['mailpath'] = '/usr/sbin/sendmail'; $config['charset'] = 'iso-8859-1'; $config['wordwrap'] = TRUE; $this->email->initialize($config);
ติดตั้งและส่งอีเมลด้วย PHPMailer
- 1. ดาวน์โหลด PHPMailer ไลบรารี่ https://github.com/PHPMailer/PHPMailer
- 2. แตกไฟล์ .zip และก๊อปปี้ไฟล์ class.phpmailer.php ไปวางไว้ใน application/libraries
- 3. เปลี่ยนชื่อไฟล์ class.phpmailer.php เป็น Phpmailer.php ให้ถูกต้องตามกฏของ CI
- 4. เปิดไฟล์ Phpmailer.php ตรวจสอบว่าชื่อ class ถูกต้องหรือไม่ ต้องเป็น class Phpmailer {
- 5. วิธีใช้งาน ไม่ว่าเราจะใช้งานที่ Controller หรือ core หรือที่อื่น ๆ ต้องทำการโหลดไลบรารี่ก่อน
$this->load->library("phpmailer");
- 6. เราสามารตั้งค่าการส่งอีเมล ชื่อผู้ส่ง หัวข้ออีเมล ชื่อผู้รับและเนื้อหาในอีเมลได้ดังนี้
$this->phpmailer->CharSet = "utf-8"; $this->phpmailer->SetFrom('[email protected]', 'sender'); $this->phpmailer->AddReplyTo("[email protected]","replyto"); $this->phpmailer->Subject = "หัวข้ออีเมล"; $this->phpmailer->MsgHTML("เนื้อหาในอีเมลเป็น HTML ได้ "); $this->phpmailer->AddAddress("[email protected]","reciever"); if(!$this->phpmailer->Send()) { echo $this->phpmailer->ErrorInfo; // ดุว่ามี error อะไร กรณีส่งไม่ผ่าน } else { // ส่งอีเมลผ่านแล้ว จะให้ไปหน้าไหนต่อ เขียนโค๊ดส่วนนี้ }
สำหรับการส่งอีเมลด้วย php ทั้งส่งโดยใช้ Library ของ Codeigniter และใช้ PHPMailer จะมีการตั้งค่า
ต่าง ๆ ที่แตกต่างกันออกไป ซึ่งขึ้นอยู่กับผู้ให้บริการ Mail Server ของแต่ละเจ้า ถ้ามีปัญหาในการส่งอีเมล
ท่านนักพัฒนาก็สามารถสอบถามข้อมูลเหล่านี้ จากผู้ให้บริการได้ หรือข้อมูลเหล่านี้อาจจะอยู่ในอีเมลตอนที่ท่าน
ซื้อหรือสมัครใช้งาน Package จากเว็บโฮสติ้งเจ้านั้น ๆ