รันโค้ดส่งอีเมลแล้วขึ้นข้อความ Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() และอีเมลไม่สามารถส่งได้ ลองรันบนเครื่องตัวเอง ด้วยโค้ดด้านล่างแบบนี้แก้ไขอย่างไร
if( !empty( $to ) && !empty( $subject ) && !empty( $message ) ) {
$from = "support@yourdomain.com";
$headers = 'From: '.$from.'' . "\r\n" .
'Content-type: text/html; charset=utf8' .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
}
วิธีแก้ไข
ปัญหานี้เกิดจากเครื่องที่รันโค้ดส่งอีเมลไม่ได้ติดตั้ง Email Server โดยปกติแล้ว localhost จะไม่สามารถส่งอีเมลด้วยคำสั่ง mail ได้ เพราะไม่ได้ติดตั้ง Mail Server หากต้องการส่งอีเมลผ่านเครื่องตัวเอง หรือ localhost แนะนำให้พิจารณาใช้ PHPMailer แทน
ตัวอย่าง PHPMailer ส่งอีเมลบน localhost และ Server ด้วย SMTP ของ Gmail