Я пытаюсь отправить почту на адрес 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:
extension=php_openssl.dll
в вашем PHP.ini $mail->SMTPSecure = 'tls';
и $mail->Port = 587;
Войдите в свою учетную запись 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 запустил приложение под названием «Пароль приложения». Создав приложение-пароль для моего экземпляра почтовой программы, я решил проблему.
Это также помогло мне, когда я прокомментировал строку $ mail-> IsSMTP ();
Хотя не знаю, как это сделать.