28

Gmailアドレスにメールを送信しようとしていますが、「SMTP -> エラー: サーバーへの接続に失敗しました: 接続がタイムアウトしました (110)SMTP Connect() に失敗しました。メッセージは送信されませんでした。メーラーエラー: SMTP接続」というエラーが表示され続けます() 失敗した。" 何が問題なのですか?

        require 'class.phpmailer.php'; // path to the PHPMailer class
        require 'class.smtp.php';

            $mail = new PHPMailer();


            $mail->IsSMTP();  // telling the class to use SMTP
            $mail->SMTPDebug = 2;
            $mail->Mailer = "smtp";
            $mail->Host = "ssl://smtp.gmail.com";
            $mail->Port = 587;
            $mail->SMTPAuth = true; // turn on SMTP authentication
            $mail->Username = "myemail@gmail.com"; // SMTP username
            $mail->Password = "mypasswword"; // SMTP password 
            $Mail->Priority = 1;

            $mail->AddAddress("myemail@gmail.com","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.';
            }
4

15 に答える 15

82

行を削除またはコメントアウトします-

$mail->IsSMTP();

そして、それはあなたのために働くでしょう。

さまざまなサイトから多くの回答を確認して実験しましたが、上記の解決策以外の解決策はありません。

于 2015-08-10T12:51:24.933 に答える
4

ローカルホストで実行していますか? を編集しましたphp.iniか?

まだの場合は、これを試してください:
1. xampp->php->php.iniを開きます
2. 検索しextension=php_openssl.dll
ます 3. イニシャルは次のようになります;extension=php_openssl.dll
4. 「;」を削除します extension=php_openssl.dll
5. が見つからない場合はextension=php_openssl.dll、この行を追加しますextension=php_openssl.dll
6. Xampp を再起動します。

幸運を ;)

于 2014-01-11T04:03:01.947 に答える
4

使用されている認証の種類を定義するための SMTPSecure 設定がなく、不要な「ssl://」を使用して Host 設定を実行しています (PS -- ssl はポート 465 を介して実行されます。 ssl 代わりに、ここで受け入れられた回答を参照してください。追加/変更する行は次のとおりです。

+ $mail->SMTPSecure = 'tls';

- $mail->Host = "ssl://smtp.gmail.com";
+ $mail->Host = "smtp.gmail.com";
于 2013-08-29T20:58:30.197 に答える
3

myaccount.google.com/securityで Google アカウントにログインし、 [ログイン] から [セキュリティ] に移動し、一番下までスクロールして [安全性の低いアプリを許可する] オプションを有効にします。

于 2016-12-27T22:07:34.397 に答える
3

この質問からしばらく経っていることは知っていますが、正確な問題があり、csf.confでSMTP_BLOCKを無効にすることで解決しました(ファイアウォールにCSFを使用しています)。

無効にするには、csf.conf を編集して SMTP_BLOCK を次のように無効にします。

###############################################################################
# SECTION:SMTP Settings
###############################################################################
# Block outgoing SMTP except for root, exim and mailman (forces scripts/users
# to use the exim/sendmail binary instead of sockets access). This replaces the
# protection as WHM > Tweak Settings > SMTP Tweaks
#
# This option uses the iptables ipt_owner/xt_owner module and must be loaded
# for it to work. It may not be available on some VPS platforms
#
# Note: Run /etc/csf/csftest.pl to check whether this option will function on
# this server
# SMTP_BLOCK = "1" --> this will cause phpmailer Connection timed out (110)
SMTP_BLOCK = "0"
于 2016-01-23T20:32:13.007 に答える
2

以下は、PHPMailer を扱う際に調べておくべきリストです。

  1. PHP.ini でコメントextension=php_openssl.dllを解除して、openSSL を有効にします。
  2. 使用$mail->SMTPSecure = 'tls';して$mail->Port = 587;
  3. 間違ったユーザー名とパスワードなど、どこかで間違っている場合は、デバッグを有効にします。
于 2015-05-14T07:02:34.667 に答える
-2

解決策は、Gmailの設定を構成し、安全なアプリケーションにアクセスしないことです

于 2016-06-06T03:12:25.053 に答える