Не удалось установить соединение с хостом smtp.gmail.com [соединение отказано # 111] в отправке электронной почты laravel 5.6 - PullRequest
0 голосов
/ 30 августа 2018

Не удалось отправить электронную почту из cpnel, но на моем локальном хосте она работает нормально.

Вот моя конфигурация электронной почты в .env файле.

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=myemail@gmail.com
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=ssl

Он отлично работает в localhost, но не работает в cpanel. В cpanel это показывает

Connection could not be established with host smtp.gmail.com [Connection refused #111]

Как мне решить эту проблему?

Ответы [ 3 ]

0 голосов
/ 30 августа 2018

Проблема решена. Я внес изменения здесь две вещи MAIL_DRIVER и MAIL_PORT .

MAIL_DRIVER=sendmail
MAIL_PORT=587

Итак, мой полный код:

MAIL_DRIVER=sendmail
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=myemail@gmail.com
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=ssl

Работает нормально

0 голосов
/ 06 января 2019

Я знаю, что на этот вопрос был дан ответ, но у меня есть альтернативное решение, которое соответствует исходному описанию и может кому-то помочь. Вы не ответили на вопрос Лука о том, запускаете ли вы cPanel или нет. Мы запускаем cPanel с брандмауэром lfd / csf, и он имеет конфигурацию TCP_OUT, в которой указывается, какие исходящие порты могут быть подключены. Порт 465 (tls) не был в этом списке, поэтому мы получили отчеты «Отказано в соединении», даже пытаясь выполнить низкоуровневый тест telnet в командной строке нашего VPS-сервера:

$ telnet smtp.gmail.com 465
Trying 74.125.140.109...
telnet: connect to address 74.125.140.109: Connection refused
Trying 74.125.140.108...
telnet: connect to address 74.125.140.108: Connection refused
Trying 2a00:1450:400c:c08::6d...
telnet: connect to address 2a00:1450:400c:c08::6d: Connection refused

Тот же тест telnet работал нормально с моей локальной машины.

После добавления 465 в список TCP_OUT:

  • Панель управления нагрузкой WHM
  • перейти к ConfigServer Security & Firewall
  • перейти к Firewall Configuration
  • найдите TCP_OUT и включите 465 (или любой другой порт, к которому вы пытаетесь подключиться) в список
  • нажмите Change внизу страницы, затем Restart lfd/csf.

Telnet теперь успешен, как и отправка почты smtpauth через PHPMailer:

$ telnet smtp.gmail.com 465
Trying 74.125.140.109...
Connected to smtp.gmail.com.
Escape character is '^]'.

(это указывает на то, что соединение с сокетом было установлено. Возможно, вы не хотите на самом деле разговаривать по SMTP с Google, поэтому нажмите ctrl-] и введите quit и нажмите Enter, чтобы закрыть соединение)

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

0 голосов
/ 30 августа 2018

Я сталкивался с этой проблемой раньше, я разрешил менее безопасные приложения из менеджера аккаунта Google И моя проблема была решена.

Похоже, вам также нужна авторизация для расширения приложения, чтобы использовать gmail.

Вы можете следовать приведенным ниже шагам ...

Войдите в свой аккаунт Gmail.

Доступ к этой ссылке для изменения настроек.

Тогда вам нужно включить Allow less secure apps.

После этого повторите попытку отправки электронной почты через хост.

...