Laravel - невозможно установить соединение с узлом smtp.gmail.com [# 0]

Я пытаюсь отправить электронное письмо из Gmail, используя Laravel из localhost. Я получаю эту ошибку: невозможно установить соединение с узлом smtp.gmail.com [# 0]

Я использую ssl с портом 465. Я также пробовал 587, но это не сработало.

Я также пробовал этот, но это не сработало. Я нашел много людей, страдающих от одних и тех же проблем, но решения, которые я нашел, не сработали.

Ответ 1

У меня была та же ошибка: соединение не удалось установить с узлом smtp.gmail.com [# 0] и выполнил следующие шаги: https://github.com/swiftmailer/swiftmailer/issues/544.

Попробуйте добавить следующие строки в _establishSocketConnection() в Swift/Transport/StreamBuffer.php в строке 263:

$options['ssl']['verify_peer'] = FALSE;
$options['ssl']['verify_peer_name'] = FALSE;

Обратите внимание, что это не идеальное решение, так как оно включает: а) взлома кода ядра, который может быть перезаписан в обновлении SwiftMailer, и b) снижает безопасность вашего приложения, поскольку вы больше не проверяете соединение. Но, как временная работа, это работало для меня.

Ответ 2

В вашем .ENV файле вам нужно будет указать адрес электронной почты и пароль своей учетной записи электронной почты.

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=testpassword

Ответ 3

В каталоге проекта Laravel отредактируйте config/mail.php и добавьте следующее:

'stream' => [
        'ssl' => [
            'allow_self_signed' => true,
            'verify_peer' => false,
            'verify_peer_name' => false,
        ],
    ]

Это сработало для меня.

Кстати, мои настройки SMTP:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=[Full Gmail Address]
MAIL_PASSWORD=[Google App Password obtained after two step verification on Google Account Page]
MAIL_ENCRYPTION=ssl

Ответ 4

Вы пытались изменить шифрование на tls? В настоящее время я использую SMTP-сервер Gmail для отправки писем из моего приложения Laravel. Я использую TLS и порт 587

Ответ 6

это сработало для меня после длительного времени поиска, лучшей конфигурации:

'driver' => 'smtp',
'host' => 'smtp-mail.outlook.com',
'port' => 587, ( or 25)
'encryption' => 'tls',

Ответ 7

Для меня оказалось, что TripMode заблокировал nginx & PHP-FPM. Поэтому убедитесь, что ни одно подобное приложение или брандмауэр не блокирует соединение с почтовым сервером.

Ответ 8

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=testpassword

Ответ 9

Вы не можете отправлять электронную почту с вашего локального хоста по умолчанию.

Если вы правильно настроите свои файлы, вы сможете отправлять ему электронные письма.

Вы также можете попробовать загрузить сайт на сервер или в производственную зону. Там он будет работать.