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

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

Barbara Streisand
Barbara Streisandオリジナル
2024-10-21 17:44:02916ブラウズ

How to Resolve SMTP Connect() Timeouts?

SMTP Connect() が失敗しました: 接続タイムアウトのトラブルシューティング

SMTP を使用して電子メールを送信しようとすると、次のエラーが発生する場合があります:「SMTP - > エラー: サーバーへの接続に失敗しました: 接続がタイムアウトしました (110)... メッセージが送信されませんでした: SMTP Connect() が失敗しました。この問題は、多くの場合、SMTP サーバーへの接続の確立に問題があることを示します。

考えられる原因:

  • SMTP 設定が正しくない (ホスト名、ポート、認証の詳細など) )
  • 接続をブロックしているファイアウォールまたはネットワーク構成
  • SMTP サーバー側の一時的なサーバーの問題

解決策:

コードで指定されている SMTP 設定 (ホスト、ポート、ユーザー名、パスワードなど) を確認し、使用している SMTP サーバーの要件と一致していることを確認します。

さらに、$ 行をコメントアウトするか削除します。メール->IsSMTP(); SMTP 構成を使用する場合は必要ないためです。

<code class="php">require 'class.phpmailer.php';
require 'class.smtp.php';

$mail = new PHPMailer();

$mail->SMTPDebug = 2; // Enable debugging
$mail->Mailer = "smtp";
$mail->Host = "ssl://smtp.gmail.com";
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = "[email protected]";
$mail->Password = "mypasswword";
$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 ポート (通常は 587 または 465) がブロックされていないことを確認してください。サーバー側の問題を排除するために、別の SMTP サーバーを使用してみることもできます。

以上がSMTP Connect() タイムアウトを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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