Ошибка SMTP Connect (). Сообщение не отправлено. Ошибка отправителя: Ошибка SMTP Connect ()

Я пытаюсь отправить почту на адрес gmail, но он продолжает получать эту ошибку «SMTP -> ERROR: Не удалось подключиться к серверу: время ожидания подключения (110) Ошибка SMTP Connect (). Сообщение не отправлено. Ошибка отправителя: SMTP Connect () не смогли." В чем может быть проблема?

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.'; } 

Удалите или закомментируйте строку,

 $mail->IsSMTP(); 

И это сработает для вас.

Я проверил и экспериментировал много ответов с разных сайтов, но не получил никакого решения, кроме вышеупомянутого решения.

Вы должны установить 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, aka 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

Я рекомендую вам сменить пароль и зашифровать его постоянно

У вас нет настройки SMTPSecure, чтобы определить тип используемой аутентификации, и вы используете параметр Host с ненужным «ssl: //» (PS-ssl – это порт 465, если вам нужно его запустить ssl вместо этого, см. принятый ответ здесь . Вот строки для добавления / изменения:

 + $mail->SMTPSecure = 'tls'; - $mail->Host = "ssl://smtp.gmail.com"; + $mail->Host = "smtp.gmail.com"; 

Вы работаете в 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 строки extension=php_openssl.dll .
6. Затем перезапустите Xampp.

Удачи 😉

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

Вот список, который вы должны изучить при работе с PHPMailer:

  1. Включить openSSL, не комментируя extension=php_openssl.dll в вашем PHP.ini
  2. Используйте $mail->SMTPSecure = 'tls'; и $mail->Port = 587;
  3. Включите отладку, если вы ошибаетесь в другом месте, например, неправильное имя пользователя и пароль и т. Д.

Войдите в свою учетную запись Google на странице myaccount.google.com/security и перейдите в раздел «Вход», а затем «Безопасность», прокрутите вниз и включите параметр «Разрешить менее безопасные приложения».

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

Я знаю, что прошло некоторое время с этого вопроса, но у меня была точная проблема, и я решил ее отключить, отключив SMTP_BLOCK на csf.conf (мы используем 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" 

Чтобы заставить его работать, мне нужно было перейти на myaccount.google.com -> «подключенные приложения и сайты» и включить «Разрешить менее безопасные приложения» в положение «ВКЛ» (в нижней части страницы).

решение настраивает настройки gmail, доступ к безопасному приложению

Недавно Google запустил приложение под названием «Пароль приложения». Создав приложение-пароль для моего экземпляра почтовой программы, я решил проблему.

https://support.google.com/accounts/answer/185833?p=InvalidSecondFactor&visit_id=1-636228492770322608-2743677043&rd=1

Это также помогло мне, когда я прокомментировал строку $ mail-> IsSMTP ();

Хотя не знаю, как это сделать.