ホームページ >バックエンド開発 >PHPチュートリアル >PHPMailer で SMTP Connect() タイムアウトを解決するにはどうすればよいですか?

PHPMailer で SMTP Connect() タイムアウトを解決するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-21 17:50:031069ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。