Не удалось установить соединение 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);

любая помощь очень приветствуется, я выполнил мое чтение и поиск и не могу найти решение этого: (

EDIT: По-видимому, это проблема с gmail, я изменился на другой smtp, и он сработал.: S

Ответ 1

Неустранимая ошибка: исключить исключение "Swift_TransportException" с сообщением "Невозможно установить соединение с узлом smtp.gmail.com [Соединение отклонено # 111]

Отказано в подключении - это очень явное и ясное сообщение об ошибке. Это означает, что соединение сокета невозможно установить, поскольку удаленный конец активно отказался подключиться.

Очень маловероятно, что Google блокирует соединение.

Вероятно, ваш провайдер веб-хостинга имеет настройки брандмауэра, которые блокируют исходящие соединения на порту 465 или блокируют SMTP для Gmail. 465 - это "неправильный" порт для безопасного SMTP, хотя он часто используется, и Gmail его там прослушивает. Вместо этого попробуйте порт 587. Если соединение по-прежнему отклонено, вызовите ваш хост и спросите их, что произошло.

Ответ 2

удалить из config.yml spool: { type: memory }

Затем вам нужно добавить try catch, как это

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

Ответ 3

У меня была такая же проблема, когда я использовал веб-хостинг 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

tcp: 465 был заблокирован. Попробуйте добавить новые правила брандмауэра и добавьте порт правил 465. или отметьте 587 и измените шифрование на tls.

Ответ 5

У меня была та же проблема некоторое время, заменив: smtp.gmail.com на 173.194.65.108 действительно работал у меня!

Ответ 6

В моем случае я использовал Laravel 5, и я забыл изменить глобальные глобальные таблицы в файле .env, который находится в корневой папке вашего каталога (эти переменные переопределяют вашу конфигурацию почты).

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

по умолчанию, mailhost:

   MAIL_HOST=mailtraper.io

Я получал ту же ошибку, но это сработало для меня.

Ответ 7

Мое решение должно было измениться:

  'driver' => 'smtp',

к

 'driver' => 'mail',

В приложении /config/mail

Надеюсь, что поможет

Ответ 8

У меня была эта проблема и она была решена путем редактирования mail.php в папке config. Обычно при использовании совместного хостинга хостинговая компания позволяет создавать электронную почту, например

[email protected]

. Поэтому перейдите в настройки электронной почты под своим общим хостингом cpanel и добавьте новое электронное письмо. Возьмите это письмо и пароль и установите его в

mail.php.

Он должен работать!

Ответ 9

У меня была такая же проблема, и я смог ее исправить, отключив мой AVAST Anti Virus. Также как и расширение AVAST в браузере. Иногда антивирус блокирует ваше приложение.:) Я надеюсь, что это поможет кому угодно.