搜尋

首頁  >  問答  >  主體

PHPMailer: SMTP錯誤:無法連線到SMTP主機

我已經在幾個專案中使用了 PHPMailer,但現在我陷入了困境。它給了我錯誤:

SMTP 錯誤:無法連線到 SMTP 主機。

# 我嘗試過從 Thunderbird 發送電子郵件,它有效!但不是透過 PHPMailer ...以下是 Thunderbird 的設定:

伺服器名稱:mail.exampleserver.com

連接埠:587

使用者名稱:user@exampleserver.com

安全性驗證:否

連線安全性:STARTTLS

我將它們與我上一個使用 PHPMailer 的專案中的伺服器進行了比較,它們是:

伺服器名稱:mail.exampleserver2.com

連接埠:465

使用者名稱:user@exampleserver2.com

安全性驗證:否

連線安全性:SSL/TLS

我的 php 程式碼是:

$mail = new PHPMailer();
 $mail->IsSMTP(); // send via SMTP
 $mail->Host = SMTP_HOST; // SMTP servers
 $mail->Port = SMTP_PORT; // SMTP servers
 $mail->SMTPAuth = true; // turn on SMTP authentication
 $mail->Username = SMTP_USER; // SMTP username
 $mail->Password = SMTP_PASSWORD; // SMTP password
 $mail->From = MAIL_SYSTEM;
 $mail->FromName = MAIL_SYSTEM_NAME;
 $mail->AddAddress($aSecuredGetRequest['email']);
 $mail->IsHTML(true); // send as HTML

我哪裡錯了?

P粉990008428P粉990008428442 天前789

全部回覆(1)我來回復

  • P粉352408038

    P粉3524080382023-10-13 14:23:02

    由於這個問題在 google 中出現率很高,因此我想在這裡分享我針對 PHP 剛剛升級到版本 5.6(具有更嚴格的 SSL 行為)的情況的解決方案。

    PHPMailer wiki 有一個關於此的部分:

    https://github.com/PHPMailer/ PHPMailer/wiki/Troubleshooting#php-56-certificate-verification-failure

    建議的解決方法包括以下程式碼:

    $mail->SMTPOptions = array(
        'ssl' => array(
            'verify_peer' => false,
            'verify_peer_name' => false,
            'allow_self_signed' => true
        )
    );

    這應該適用於 PHPMailer 5.2.10(及更高版本)。

    注意:顯然,正如該 wiki 中所建議的,這應該是一個臨時解決方案!

    回覆
    0
  • 取消回覆