Как решить: не удалось установить соединение с хостом smtp.gmail.com Ошибка [Тайм-аут соединения # 110] в PHP - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь настроить систему проверки электронной почты для системы входа, над которой я работаю.У меня почти все работает в моем php-коде, вплоть до строки $ mailer-> send ($ message), которая возвращает вышеуказанную ошибку.

Я смотрел на несколько других подобных проблем, связанных со стековым потоком и другимисайты, но ни одно из предложенных решений не сработало.У меня менее безопасные приложения включены в учетной записи Gmail, которая отправляет подтверждение по электронной почте.Я пробовал ssl и tls с портами 465 и 587 соответственно.Я не хочу отключать что-либо, связанное с безопасностью без необходимости.Хотя я достаточно уверен в своих знаниях в области кодирования, я боюсь, что у меня очень мало опыта в таких вопросах, связанных с сервером.В прошлом я успешно создал систему входа с подтверждением электронной почты, но я не помню, как мне удалось избежать этой проблемы.Если это связано с брандмауэрами или чем-то в этом роде, я прошу лишь немного больше информации, так как можно предположить, что я, по сути, неспециалист в этой области.

<?php
require_once './vendor/autoload.php';

function sendVerificationEmail($userEmail, $verificationCode)
{
$transport = (new Swift_SmtpTransport('smtp.gmail.com', 465, 'ssl'))
->setUsername("fromEmail@email.com")
->setPassword("password");

$mailer = new Swift_Mailer($transport);
$body = "";
    $message = (new Swift_Message('Verify your email'))
        ->setFrom("fromEmail@email.com")
        ->setTo($userEmail)
        ->setBody($body);

    echo "Message Created. Send To: " . $userEmail;
    try
    {
      if ($mailer->send($message, $errors))
      {
        echo "email success.";
        return true;
      }
      else
      {
        echo "email no good.";
        echo "ERROR: " . $errors;
        return false;
      }
    }
    catch(Swift_SwiftException $e)
    {
      echo "ERROR: " . $e->getMessage();
    }
}

?>

Большая часть этого кода получена из стандартных руководств.Я просто пытаюсь убедиться, что электронное письмо отправлено, прежде чем я действительно включу функциональность для проверки.Я не знаю, почему это не отправка электронной почты.В частности, возвращается сообщение об ошибке «Не удалось установить соединение с хостом smtp.gmail.com [Время ожидания истекло # 110]».

Спасибо, что уделили время.

1 Ответ

0 голосов
/ 12 июля 2019

это всегда проблема подключения вашего приложения к серверам Google. Всякий раз, когда Google отклоняет соединение, Google фактически возвращает ошибку, включая статью в КБ. Вы можете легко протестировать одно и то же соединение с помощью инструментов тестирования SMTP или даже любого Outlook, телефонного соединения IMAP / SMTP. Боюсь, что я не могу помочь вам с кодом, но я могу с уверенностью сказать, что проблема не в вашей учетной записи Google (я видел это много раз).

Вы также можете попробовать неограниченный сервер Google (ASPMX.L.GOOGLE.COM) порт 25, без аутентификации, и это позволяет проверить соединение без имени пользователя / pw, но отправляет только электронные письма на серверы Google.

Удачи

...