web-dev-qa-db-ja.com

Swift_TransportExceptionホストsmtp.gmail.comとの接続を確立できませんでした

私は、なぜそれが正確に失敗するのか私の人生を理解することはできません..これは私が得ている正確なエラーです:

Fatal error: Uncaught exception 'Swift_TransportException' with message 'Connection  
could not be established with Host smtp.gmail.com [Connection refused #111]' in 
/home/content/38/6896038/html/test/lib/classes/Swift/Transport/StreamBuffer.php:259 
Stack trace: #0 
/home/content/38/6896038/html/test/lib/classes/Swift/Transport/StreamBuffer.php(64): 
Swift_Transport_StreamBuffer->_establishSocketConnection() #1 /home/content/38/6896038/html/test/lib/classes/Swift/Transport/AbstractSmtpTransport.php(115): Swift_Transport_StreamBuffer->initialize(Array) #2 /home/content/38/6896038/html/test/lib/classes/Swift/Mailer.php(80): Swift_Transport_AbstractSmtpTransport->start() #3 /home/content/38/6896038/html/test/contact.php(55): Swift_Mailer->send(Object(Swift_Message)) #4 {main} thrown in /home/content/38/6896038/html/test/lib/classes/Swift/Transport/StreamBuffer.php on line 259

そして、私が使用しているコードは、チュートリアルから得たものであり、ここの例を読んでいます。

require_once 'lib/Swift_required.php';

$transport = Swift_MailTransport::newInstance();

// Create the Transport the call setUsername() and setPassword()
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')
  ->setUsername('[email protected]')
  ->setPassword('xxx')
  ;

// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);

$nombre = $_POST['name'];
$apellido = $_POST['apellido'];
$email = $_POST['email'];
$telefono = $_POST['telefono'];
$title = $_POST['jobtitle'];

// Create the message
$message = Swift_Message::newInstance()

  // Give the message a subject
  ->setSubject('Nuevo applicante para: ' . $title)

  // Set the From address with an associative array
  ->setFrom(array('[email protected]' => 'no-reply'))

  // Set the To addresses with an associative array
  ->setTo('[email protected]')

  // Give it a body
  ->setBody('<html>
                <head></head>
                <body>
                    <table>
                        <tr>
                            <td>Nombre:</td><td>' . $nombre . ' ' . $apellido .'</td>
                        </tr>
                        <tr>
                            <td>Email:</td><td>' . $email . '</td>
                        </tr>
                        <tr>
                            <td>Telefono:</td><td>'. $telefono .'</td>
                        </tr>
                    </table>
                </body>
            </html>', 'text/html')

  // Optionally add any attachments
  ->attach(Swift_Attachment::fromPath($_FILES["file"]["tmp_name"])->setFilename($_FILES['file']['name']));

// Send the message
$result = $mailer->send($message);

どんな助けも大歓迎です、私は読んで検索しましたが、これに対する解決策を見つけることができません:(

編集:どうやらそれはGmailの問題だ、私は別のSMTPに変更し、それが働いた..:S

25
Andres

致命的エラー:メッセージ「ホストとの接続を確立できませんでしたsmtp.gmail.com [接続が拒否されました#111]

接続拒否は、非常に明確で明確なエラーメッセージです。リモートエンドが接続を積極的に拒否したため、ソケット接続を確立できなかったことを意味します。

Googleが接続をブロックしている可能性はほとんどありません。

ウェブホスティングプロバイダーがポート465での送信接続をブロックするファイアウォール設定を持っているか、SMTP to Gmailをブロックしている可能性が非常に高いです。 465はセキュアSMTPの「間違った」ポートですが、よく使用されますが、Gmailはそこでリッスンします。代わりにポート587を試してください。それでも接続が拒否される場合は、ホストに電話して、何が起きているのか尋ねてください。

18
Charles

config.ymlから削除spool: { type: memory }

次に、このようなtry catchを追加します

    try{
        $mailer = $this->getMailer();
        $response = $this->getMailer()->send($message);
    }catch(\Swift_TransportException $e){
        $response = $e->getMessage() ;
    }
6

Godaddyウェブホスティングを使用していたときに同じ問題が発生し、。envファイルを編集してこれを解決しました。

MAIL_DRIVER=smtp
MAIL_Host=XXXX.XXXX.in
MAIL_PORT=587
MAIL_USERNAME=dexxxxx
MAIL_PASSWORD=XXXXXXXX
MAIL_ENCRYPTION=tls

MAIL_HostはGodaddyのドメイン名、MAIL_USERNAMEはGodaddyのユーザー名、MAIL_PASSWORDはGodaddyのパスワードです。

これがお役に立てば幸いです。

4
Amarja

tcp:465がブロックされました。新しいファイアウォールルールを追加してルールポート465を追加するか、587をチェックして暗号化をtlsに変更してください。

4
Kuya A

私の解決策は変更することでした:

  'driver' => 'smtp',

 'driver' => 'mail',

App/config/mail

役立つことを願っています

1
Samir Daraf

私の場合、GoDaddyとSSL暗号化に問題がありました。

暗号化をNullに設定し、ポートを80(または任意のサポートポート)に設定すると、仕事ができました。

0
Muhammad Athar

私はしばらくの間、同じ問題を抱えていました:smtp.gmail.com with 173.194.65.108実際に私のために働いた!

0
Mohammad Anini

私の場合、Laravel 5を使用しており、ディレクトリルートフォルダにある.envファイルのメールグローバルを変更するのを忘れていました(これらの変数はメール設定をオーバーライドします)

   MAIL_DRIVER=smtp
   MAIL_Host=smtp.gmail.com
   MAIL_PORT=465
   [email protected]
   MAIL_PASSWORD=yourpassword

デフォルトでは、メールホストは次のとおりです。

   MAIL_Host=mailtraper.io

私は同じエラーを受け取っていたが、それは私のために働いた。

0
Jesus Rodriguez

私は同じ問題を抱えていたので、AVAST Anti Virusを無効にすることでそれを修正しました。ブラウザでの私のAVAST拡張と同様に。アンチウイルスがアプリケーションをブロックすることがあります。 :)私はそれが誰にも役立つことを願っています。

0
Dominic

まず、Gmail SMTPサーバーを確認します。 Swiftメーラーは使用できません。メールアカウントでこのログインを行うには、まずプライバシー設定に入り、次に署名とセキュリティをクリックしてからクリックしてください。アプリにアクセスせずに、安全性の低いアプリオプションを選択してから、メーラーを再試行すると、動作します。

0
krishna Tyagi