คราวที่แล้วได้แนะนำวิธีการติดตั้งเว็บเซิร์ฟเวอร์ xampp ไปแล้ว ต่อไปเราจะมาคอนฟิกการแจ้งเตือนผ่านอีเมลบนเว็บเซิร์ฟเวอร์กันบ้าง จุดประสงค์ของการส่งอีเมลจาก xampp เว็บเซิร์ฟเวอร์ก็คือ เมื่อไหร่ก็ตามที่มีสิ่งผิดปรกติเกิดขึ้นกับเว็บเซิร์ฟเวอร์ของเรา xampp ก็จะทำการส่ง error log มาที่อีเมลในสมาร์ทโฟน ซึ่งปรกติเราพกติดตัวเกือบตลอดเวลาอยู่แล้ว ดังนั้นหากมีสิ่งผิดปรกติบนเว็บเซิร์ฟเวอร์ xampp เราก็จะได้รับอีเมลในโทรศัพท์มือถือทันที
อย่างแรกเราต้องมีบัญชีอีเมล pop3 ก่อน ซึ่งในตัวอย่างผมใช้บัญชี pop3 ของอินเตอร์เน็ต 3BB จากนั้นคอนฟิกที่ไฟล์ C:\xampp\php\php.ini อย่าลืมแบ็คอัพไฟล์ต้นฉบับก่อนทำการแก้ไขเก็บไว้ด้วยนะครับ โปรแกรมที่ใช้แก้ไขอาจจะใช้ Notepad หรือโปรแกรมอื่นก็แล้วแต่ท่านสะดวก โดยในตัวอย่างผมใช้โปรแกรม Edit Plus ครับ เมื่อเปิดโปรแกรมขึ้นมาค้นหาข้อความ “[mail function]” จากนั้นแก้ไขตามรูปตัวอย่างครับ
ต่อมาเปิดไฟล์ C:\xampp\sendmail\sendmail.ini ไฟล์นี้ข้อความไม่เยอะ หาง่ายแก้ไขตามรูปภาพเลยครับ
จากนั้นสร้างสคิปที่ C:\xampp\htdocs\send-log.php ดังนี้ครับ
<?php
$filename = 'weblog.txt';
$path = './';
$file = $path . "/" . $filename;
$mailto = 'bsailom@3bbmail.com';
$subject = 'Subject: Userlog file';
$message = 'Weblog file on sailom blog.';
$content = file_get_contents($file);
$content = chunk_split(base64_encode($content));
// a random hash will be necessary to send mixed content
$separator = md5(time());
// carriage return type (RFC)
$eol = "\r\n";
// main header (multipart mandatory)
$headers = "From: xampp server <xampp@localhost>" . $eol;
$headers .= "MIME-Version: 1.0" . $eol;
$headers .= "Content-Type: multipart/mixed; boundary=\"" . $separator . "\"" . $eol;
$headers .= "Content-Transfer-Encoding: 7bit" . $eol;
$headers .= "This is a MIME encoded message." . $eol;
// message
$body = "--" . $separator . $eol;
$body .= "Content-Type: text/plain; charset=\"iso-8859-1\"" . $eol;
$body .= "Content-Transfer-Encoding: 8bit" . $eol;
$body .= $message . $eol;
// attachment
$body .= "--" . $separator . $eol;
$body .= "Content-Type: application/octet-stream; name=\"" . $filename . "\"" . $eol;
$body .= "Content-Transfer-Encoding: base64" . $eol;
$body .= "Content-Disposition: attachment" . $eol;
$body .= $content . $eol;
$body .= "--" . $separator . "--";
//SEND Mail
if (mail($mailto, $subject, $body, $headers)) {
echo "mail send ... OK"; // or use booleans here
} else {
echo "mail send ... ERROR!";
print_r( error_get_last() );
}
?>
โดยไฟล์ weblog.txt ถูกสร้างมาจากไฟล์ index.php เมื่อมีผู้เข้ามาเยี่ยมชมเว็บไซต์เราก็ดึงข้อมูลจากตัวแปร REMOTE_ADDR หรือ HTTP_USER_AGENT เป็นต้น เสร็จเรียบร้อยแล้วเราสามารถทดสอบโปรแกรมผ่าน Command Prompt บน Windows ดังนี้
cd \xampp\htdocs
C:\xampp\htdocs>\xampp\php\php.exe send-log.php
mail send ... OK
จากนั้นเราก็ไปตั้งค่ารับอีเมล pop3 ในเครื่องสมาร์ทโฟน เมื่อสั่ง Run โปรแกรมจะมีการส่งอีเมลจาก xampp มายัง 3bbmail ในเครื่องสมาร์ทโฟนของเราครับ