PHPmailer での SMTP 接続の失敗: 問題の解決
PHPmailer 経由で電子メールを送信すると、開発者は次のエラーが発生する場合があります:「メーラー エラー: SMTP」 connect() が失敗しました。」この問題は、Gmail の SMTP サーバーを使用するときによく発生します。
解決策は、Google の新しい認証メカニズムである XOAUTH2 の実装にあります。 PHPmailer が Gmail の SMTP に接続できるようにするには、Google アカウントで「安全性の低いアプリ」設定を有効にする必要があります。この手順により、厳密な暗号化プロトコルに準拠していないアプリケーションへのアクセスが許可されます。
さらに、ポート 465 で SSL を使用する代わりに、ポート 587 で TLS に切り替えます。TLS により、リクエストが安全に暗号化され、Google の要件を満たします。 .
以下は、これらの変更を組み込んだ変更されたコード スニペットです:
<code class="php">require_once 'C:\xampp\htdocs\email\vendor\autoload.php'; define ('GUSER','[email protected]'); define ('GPWD','your password'); // make a separate file and include this file in that. call this function in that file. function smtpmailer($to, $from, $from_name, $subject, $body) { global $error; $mail = new PHPMailer(); // create a new object $mail->IsSMTP(); // enable SMTP $mail->SMTPDebug = 2; // debugging: 1 = errors and messages, 2 = messages only $mail->SMTPAuth = true; // authentication enabled $mail->SMTPSecure = 'tls'; // secure transfer enabled REQUIRED for GMail $mail->SMTPAutoTLS = false; $mail->Host = 'smtp.gmail.com'; $mail->Port = 587; $mail->Username = GUSER; $mail->Password = GPWD; $mail->SetFrom($from, $from_name); $mail->Subject = $subject; $mail->Body = $body; $mail->AddAddress($to); if(!$mail->Send()) { $error = 'Mail error: '.$mail->ErrorInfo; return false; } else { $error = 'Message sent!'; return true; } }</code>
これらの変更を実装すると、Gmail の SMTP サーバーへの接続を正常に確立し、PHPmailer 経由で電子メールを送信できます。
以上がGmail で PHPmailer を使用するときに発生する「SMTP Connect() Failed」エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。