Не могу отправить письмо Laravel

Я пытаюсь отправить письмо после регистрации пользователя и получаю сообщение об ошибке:

Не удалось установить соединение с хостом smtp.gmail.com [Тайм-аут соединения # 110]

Я использую сервер Ubuntu 16.04. На localhost все было хорошо.
команда

openssl s_client -connect google.com:443 -tls1_2

возвращается ОК, так что я думаю, 587 порт открыт для отправки электронной почты.
мой .env:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=***@gmail.com
MAIL_PASSWORD=*** //(not the same as I used on local machine)
MAIL_ENCRYPTION=tls

config\mail.php:

return [
'driver' => env('MAIL_DRIVER', 'smtp'),

'host' => env('MAIL_HOST', 'smtp.mailgun.org'),

'port' => env('MAIL_PORT', 587),

'from' => [
'address' => env('MAIL_FROM_ADDRESS', '***@gmail.com'),
'name' => env('MAIL_FROM_NAME', '***'),
],

'encryption' => env('MAIL_ENCRYPTION', 'tls'),

'username' => env('MAIL_USERNAME'),

'password' => env('MAIL_PASSWORD'),

'sendmail' => '/usr/sbin/sendmail -bs',

'markdown' => [
'theme' => 'default',

'paths' => [
resource_path('views/vendor/mail'),
],
],

];

РЕДАКТИРОВАТЬ # 1: также я связал проблему. Пытаясь посеять это

public function run()
{
$defaultUser = User::create([
'name' => 'user',
'email' => 'user@mail.com',
'password' => bcrypt('123123'),
'verified' => 1
]);

$defaultAdmin = User::create([
'name' => 'admin',
'email' => 'admin@mail.com',
'password' => bcrypt('123123'),
'verified' => 1
]);

$userRole = Role::create([
'name' => 'user',
'display_name' => 'user',
'description' => 'user',
]);

$adminRole = Role::create([
'name' => 'admin',
'display_name' => 'admin',
'description' => 'admin',
]);

$defaultUser->attachRole($userRole); //zizaco-entrus RBAC package
$defaultAdmin->attachRole($adminRole);
}

только $defaultUser seed (у меня есть событие, которое срабатывает после сохранения пользователя и отправки ему письма с подтверждением). Я получаю ошибку

В строке 269 StreamBuffer.php:

Не удалось установить соединение с хостом smtp.gmail.com
Мед № 110]

EDIT # 2: telnet smtp.gmail.com 587 не отвечает.

EDIT # 3: sudo ufw status:

Status: active

To                         Action      From
--                         ------      ----
Apache Full                ALLOW       Anywhere
587/tcp                    ALLOW       Anywhere
465/tcp                    ALLOW       Anywhere
22                         ALLOW       Anywhere
80                         ALLOW       Anywhere
443                        ALLOW       Anywhere
21/tcp                     ALLOW       Anywhere
587                        ALLOW       Anywhere
Apache Full (v6)           ALLOW       Anywhere (v6)
587/tcp (v6)               ALLOW       Anywhere (v6)
465/tcp (v6)               ALLOW       Anywhere (v6)
22 (v6)                    ALLOW       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)
21/tcp (v6)                ALLOW       Anywhere (v6)
587 (v6)                   ALLOW       Anywhere (v6)

EDIT # 4:
Мой новый ключ приложения Gmail, который я создал для этого проекта, до сих пор не используется.

Я старался этот ответ:

В строке AbstractSmtpTransport.php 419:
Ожидаемый код ответа 220, но получил код «», с сообщением «»

Также этот ответ не помогло

РЕДАКТИРОВАТЬ # 5: проверено разрешение SMTP на приборной панели сервера. Извините за беспокойство, ребята.

2

Решение

У меня есть опыт работы с серверами GoDaddy, которые ограничивают количество ретрансляторов, которые ваш сервер может отправлять в день.

Google Cloud Platform полностью запрещает отправку электронной почты, блокируя обычно используемые порты электронной почты SMTP. У них есть соглашения с поставщиками электронной почты saas для увеличения количества бесплатных писем, которые вы можете отправлять. Например, я использую mailgun и вместо того, чтобы отправлять только 10 000 электронных писем в месяц бесплатно, я могу отправить 30 000 электронных писем. Мне действительно нравится отправлять электронные письма таким образом, потому что они имеют более высокую доставляемость и позволяют нам легче отслеживать клики, отписки, просмотры и т. Д. Итог, я рекомендую подписаться на один из этих сервисов.

Я подозреваю, что Scaleway также ограничивает вас. По сути, любая облачная служба хостинга несет ответственность за электронную почту. Особенно на виртуальном хостинге 1 спамер может помечать нескольких пользователей на одном сервере и в одном регионе как спамеров, даже если они невиновны.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector