web-dev-qa-db-ja.com

SMTP Connect()が失敗しました。メッセージは送信されませんでした。メーラーエラー:SMTP Connect()が失敗しました

Gmailアドレスにメールを送信しようとしていますが、このエラーが引き続き発生します。「SMTP->エラー:サーバーへの接続に失敗しました:接続がタイムアウトしました(110)SMTP Connect()failed。メッセージは送信されませんでした。メーラーエラー: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 = "[email protected]"; // SMTP username
            $mail->Password = "mypasswword"; // SMTP password 
            $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.';
            }
24
Sayari

行を削除するかコメントアウトします

$mail->IsSMTP();

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

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

57
Snehasis

Php_openssl.dllをインストールする必要があります。wampserverを使用する場合は非常に簡単で、PHPの拡張機能を検索して適用します。

例ではこれを変更します:

    //Set the hostname of the mail server
    $mail->Host = 'smtp.gmail.com';

    //Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission 465 ssl
    $mail->Port = 465;

    //Set the encryption system to use - ssl (deprecated) or tls
    $mail->SMTPSecure = 'ssl';

ここでGmailからのメールを受信し、ここで安全性の低いアプリケーションへのオプションを有効にすることを話しました https://www.google.com/settings/security/lesssecureapps

パスワードを変更し、常に暗号化することをお勧めします

9
El David

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

+ $mail->SMTPSecure = 'tls';

- $mail->Host = "ssl://smtp.gmail.com";
+ $mail->Host = "smtp.gmail.com";
4
Dmitri DB

Localhostで実行していますか? 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を再起動します。

幸運を ;)

4
Sendoh Akira

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

3
user7347514

この質問からしばらく経ちましたが、正確な問題があり、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"
3
Goldbug

誰かがあなたのアカウントにログインしようとするのはあなたであり、私はyesと答えると私に言ってGoogleからのメールを受け取ることでこの問題がありましたサーバ

3
user5778000

以下に、PHPMailerを扱うときに検討すべきリストを示します。

  1. コメントを解除してopenSSLを有効にするextension=php_openssl.dll PHP.iniで
  2. つかいます $mail->SMTPSecure = 'tls';および$mail->Port = 587;
  3. ユーザー名やパスワードが間違っているなど、どこか間違っている場合のデバッグを有効にします。

あなたはすべて元気です。 465など、システムで動作する他のSMTPポートを確認する必要があります。 Googleアカウントによる 安全性の低いアプリ へのアクセスを許可するために留意すべきもう1つのことは、同じエラーをスローします。
私は丸1日それを経験しましたが、間違っているのはポート番号だけです。ポート番号を変更しました。そしてそれは動作します。

1
deepak kumar

動作させるには、myaccount.google.com->「接続済みアプリとサイト」に移動し、「安全性の低いアプリを許可する」を「オン」(ページの下部近く)にする必要がありました。

0

Mailjet

SMTP設定

ポート:25または587(一部のプロバイダーはポート25をブロックします)

サーバーにアプリを展開した後、ポートを変更することで作業します。

  • デバッグでは私のために働いた:$mail->Port = 25;
  • リリースでは、それは私のために働いた:$mail->Port = 587;

GL

0
CORONEL Braian

ローカルホストで機能するが、Webホストでは機能しない場合:

一部のホスティングサイト 特定の送信SMTPポートをブロックする 。受け入れられた回答に記載されている$mail->IsSMTP();行をコメントアウトすると機能する場合がありますが、SMTP設定を無効にし、ホスティングサイトの電子メール設定を使用するだけです。

GoDaddyを使用している場合、別のSMTPを使用してメールを送信する方法はありません。 SiteGroundを使用していて、SSL暗号化タイプを使用して、ポート25および465からのみSMTPアクセスを許可していることがわかったため、ホストのドキュメントを検索してそこからアクセスします。

0
Stephanie