ใช้ PHPMailer รันบน localhot แล้วอีเมลไม่ส่งขึ้นข้อความว่า SMTP ERROR: Failed to connect to server: (0) SMTP connect() failed. แบบนี้ต้องแก้ไขอย่างไร ค่า Config PHPMailer มีดังนี้
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
$mail->isSMTP();
$mail->Host = 'mail.xxx.com';
$mail->SMTPAuth = true;
$mail->Username = 'yyy@xxx.com';
$mail->Password = 'xxx';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
วิธีแก้ไข
ปัญหานี้แก้ไขได้โดยเพิ่มโค้ดส่วนของ SMTPOptions ไว้ที่ค่า Config ของ PHPMailer
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
ตัวอย่าง โค้ดแบบเต็ม
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
$mail->isSMTP();
$mail->Host = 'mail.xxx.com';
$mail->SMTPAuth = true;
$mail->Username = 'yyy@xxx.com';
$mail->Password = 'xxx';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);