PHPmailer での SMTP Connect() エラーのトラブルシューティング
はじめに
メールを送信しようとしたときPHPmailer を使用すると、「メーラー エラー: SMTP connect() が失敗しました。」というエラーが発生する場合があります。この問題は、Google による XOAUTH2 として知られる新しい認証メカニズムの実装が原因で発生します。
解決策
この問題を解決するには、次の手順に従います。
1. Google アカウントで安全性の低いアプリを有効にする
2.ポート 465 上の SSL ではなくポート 587 上の TLS を使用する
ポート 465 上の SSL ではなくポート 587 上の TLS を使用するようにコードを変更します。次の行を置き換えます。
<code class="php">$mail->Host = "ssl://smtp.gmail.com"; $mail->Port = 465;</code>
の内容:
<code class="php">$mail->Host = 'smtp.gmail.com'; $mail->Port = 587;</code>
サンプル コード
変更されたコードは次のとおりです:
<code class="php">require "class.phpmailer.php"; $mail = new PHPMailer(); $mail->IsSMTP(); // send via SMTP $mail->SMTPDebug = 2; // debugging: 1 = errors and messages, 2 = messages only $mail->SMTPAuth = true; // turn on SMTP authentication $mail->SMTPSecure = 'tls'; // secure transfer enabled REQUIRED for GMail $mail->SMTPAutoTLS = false; $mail->Host = 'smtp.gmail.com'; $mail->Port = 587; $mail->Username = "[email protected]"; // SMTP username $mail->Password = "mypassword"; // SMTP password $webmaster_email = "[email protected]"; //Reply to this email ID $email="[email protected]"; // Recipients email ID $name="My Name"; // Recipient's name $mail->From = $webmaster_email; $mail->FromName = "My Name"; $mail->AddAddress($email,$name); $mail->AddReplyTo($webmaster_email,"My Name"); $mail->WordWrap = 50; // set word wrap $mail->IsHTML(true); // send as HTML $mail->Subject = "subject"; $mail->Body = "Hi, This is the HTML BODY "; //HTML Body $mail->AltBody = "This is the body when user views in plain text format"; //Text Body if(!$mail->Send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Message has been sent"; }</code>
これらの変更を実装すると、PHPmailer を使用して電子メールを正常に送信できるようになります。
以上がPHPmailer で「メーラー エラー: SMTP connect() が失敗しました」を修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。