Swiftmailer: невозможно установить соединение с узлом smtp.gmail.com [Время ожидания подключения № 110]

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

Я пытаюсь отправить электронную почту с помощью Swiftmailer через Google Apps для бизнеса Gmail, но я продолжаю получать эту ошибку:

Не удалось установить соединение с узлом smtp.gmail.com [Время ожидания подключения: 110]

Я знаю, что код в порядке, потому что он работает на моей локальной машине, но не на рабочем сервере.

То, что я пробовал до сих пор:

  • Включен OpenSSL.
  • Разблокирована учетная запись из Google captcha.
  • Используется специальный пароль для приложения.
  • IP-адреса SMTP Whitelisted Gmail

Конфигурация:

# Swiftmailer Configuration
swiftmailer:
    transport:  smtp
    encryption: ssl
    auth_mode:  login
    host:       smtp.gmail.com
    username:   [email protected]
    password:   applicationspecificpassword
    port:       465

Что еще я могу попробовать? Может ли это быть проблемой DNS, поскольку я использую записи Gmails SMTP MX вместо серверов.

Ответы

Ответ 1

Замена: smtp.gmail.com с помощью 173.194.65.108 действительно сработала для меня!

Ответ 2

Для меня работали следующие шаги:

  • Проверьте, включен ли httpd_can_sendmail, запустите это getsebool httpd_can_sendmail

    • Когда вы получите: httpd_can_sendmail → выкл, запустите setsebool -P httpd_can_sendmail 1
    • Когда вы получите: httpd_can_sendmail → on, который отлично перемещается на шаге 2.
  • Также проверьте, включено ли httpd_can_network_connect, запустите getsebool httpd_can_network_connect

    • Когда вы получите httpd_can_network_connect → off запустите setsebool -P httpd_can_network_connect 1
    • Когда вы получите: httpd_can_network_connect → on, что тонкий переход на шаге 3.
  • Используйте следующие настройки для smtp: 'host' => '64.233.166.108' 'port' => '465'

Я использую Centos

Ответ 3

Если вы когда-нибудь захотите вернуться к использованию Gmail, я столкнулся с той же проблемой - код работал на моей локальной машине, но не на реальном сервере, и думаю, что я понял, что вызывает ее (по крайней мере в моем случае).

Похоже, что если сервер поддерживает IPv6 и IPv4, домен сервера разрешается как версия IPv6, поэтому PHP пытается подключиться к нему. Но я обнаружил, что smtp.gmail.com не ответил, поэтому через 30 секунд script просто сдался и был отключен. Вы могли бы подумать, что PHP будет пытаться выполнить IPv4 после отказа IPv6, но нет.

Итак, когда я поменялся на IPv4-адрес smtp.gmail.com(полученный путем его ping-ing), все работало нормально и отправлено электронное письмо. Это не идеальное использование IP вместо домена, поскольку оно может меняться, но, по крайней мере, это позволяет сэкономить оставшиеся серверные половицы:)

Ответ 4

просто добавьте   74.125.130.108 smtp.gmail.com к файлу хостов сервера

Ответ 6

Для меня проблема была в том, что я использовал tls-шифрование, вот порты для TLS и SSL. Не забудьте перезагрузиться после изменения файла env.

smtp.gmail.com    ---    SSL       ---      465
smtp.gmail.com    ---   StartTLS ---   587

Кроме того, вам необходимо изменить безопасность вашей учетной записи google