首頁 >後端開發 >php教程 >如何使用 PHPMailer 解決 SMTP Connect() 逾時問題?

如何使用 PHPMailer 解決 SMTP Connect() 逾時問題?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-21 17:50:031061瀏覽

How to Resolve SMTP Connect() Timeouts with PHPMailer?

SMTP Connect() 錯誤:連線逾時故障排除

嘗試使用PHPMailer 發送電子郵件時,使用者可能會遇到以下錯誤: 「SMTP -> 錯誤:無法連線到伺服器:連線逾時(110)SMTP Connect() 訊息未傳送。郵件程式錯誤:SMTP Connect() 失敗。」此錯誤通常源自於伺服器和PHP 腳本之間的連線困難。

在檢查提供的 PHP 程式碼時,注意到「$mail->IsSMTP();」行在場。根據 PHPMailer 的文檔,此方法已被棄用並且不再需要。刪除或註解掉這一行可以解決連線逾時問題:

<code class="php">// Remove or comment out the following line:
// $mail->IsSMTP();</code>

透過刪除或註解掉「IsSMTP()」方法,可以成功建立與 SMTP 伺服器的連線。下面的完整程式碼示範了已修正的 PHPMailer 配置:

<code class="php">require 'class.phpmailer.php'; // path to the PHPMailer class
require 'class.smtp.php';

$mail = new PHPMailer();

$mail->Mailer = "smtp";
$mail->SMTPDebug = 2;
$mail->Host = "ssl://smtp.gmail.com";
$mail->Port = 587;
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "[email protected]"; // SMTP username
$mail->Password = "mypasswword"; // SMTP password 
$Mail->Priority = 1;

$mail->AddAddress("[email protected]","Name");
$mail->SetFrom($visitor_email, $name);
$mail->AddReplyTo($visitor_email,$name);

$mail->Subject  = "Message from  Contact form";
$mail->Body     = $user_message;
$mail->WordWrap = 50;  

if(!$mail->Send()) {
    echo 'Message was not sent.';
    echo 'Mailer error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent.';
}</code>

透過實作這些更改,應該解決錯誤“SMTP Connect() failed”,從而允許使用 SMTP 驗證透過 PHPMailer 成功發送電子郵件。

以上是如何使用 PHPMailer 解決 SMTP Connect() 逾時問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn