PHPmailer SMTP connect() が Gmail で失敗するのはなぜですか?どうすれば修正できますか?

Barbara Streisand
リリース: 2024-10-27 04:26:03
オリジナル
813 人が閲覧しました

Why is my PHPmailer SMTP connect() failing with Gmail and how can I fix it?

SMTP connect() が失敗しました PHPmailer - PHP

この問題は、特に PHPmailer を使用して電子メールを送信しようとしたときにエラーが発生した場合に発生します。 「メーラー エラー: SMTP connect() が失敗しました。」根本的な原因は、多くの場合、認証設定とメール プロバイダーとの互換性に関連しています。

この場合、解決策には、Google アカウントで安全性の低いアプリを有効にすることが含まれます。 Google は最近、サードパーティ アプリケーションへのアクセスを明示的に許可する必要がある XOAUTH2 認証を実装しました。

これを解決するには:

  • https://www.google.com/settings にアクセスしてください。 /security/lesssecureapps
  • 「有効にする」オプションをチェックします
  • この手順では、PHPmailer が XOAUTH2 メカニズムを使用して Google SMTP サーバーに接続することを許可します。

さらに、正しい SMTP 設定を使用していることを確認してください:

  • SMTP サーバー: smtp.gmail.com
  • ポート: 587
  • TLS: 有効
  • 認証: はい
  • ユーザー名: Google アカウントのメール アドレス
  • パスワード: Google アカウントのパスワード

次の設定で更新されたコード サンプルを次に示します:

<code class="php">require_once 'C:\xampp\htdocs\email\vendor\autoload.php';

define ('GUSER','[email&#160;protected]');
define ('GPWD','your password');

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>
ログイン後にコピー

安全性の低いアプリを有効にし、 SMTP 設定が正しい場合、PHPmailer と Gmail の SMTP サーバーを使用して電子メールを正常に送信できるはずです。

以上がPHPmailer SMTP connect() が Gmail で失敗するのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!