Devdit
 

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() วิธีแก้ไข

2.3K

รันโค้ดส่งอีเมลแล้วขึ้นข้อความ 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

แก้ไข 3 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ