Я отправляю сообщения, потому что я уже рассмотрел решения, размещенные в других вопросах здесь, но они не помогли.
То, что я пытаюсь сделать, – отправить электронную почту с помощью Swiftmailer через Google Apps для бизнеса Gmail, но я продолжаю получать эту ошибку:
Не удалось установить соединение с узлом smtp.gmail.com [Время ожидания подключения – 110]
Я знаю, что код в порядке, потому что он работает на моей локальной машине, но не на рабочем сервере.
То, что я пробовал до сих пор:
Конфигурация:
# Swiftmailer Configuration swiftmailer: transport: smtp encryption: ssl auth_mode: login host: smtp.gmail.com username: contact@mydomain.com password: applicationspecificpassword port: 465
Что еще я могу попробовать? Может ли это быть проблемой DNS, поскольку я использую записи Gmails SMTP MX вместо серверов.
Замена: smtp.gmail.com
с 173.194.65.108
действительно сработал для меня!
Следующие шаги работали на меня:
Проверьте, включен ли httpd_can_sendmail , запустите этот getsebool httpd_can_sendmail
setsebool -P httpd_can_sendmail 1
Проверьте также, включен ли httpd_can_network_connect , запустите getsebool httpd_can_network_connect
setsebool -P httpd_can_network_connect 1
'host' => '64.233.166.108'
'port' => '465'
Я использую Centos
Если вы когда-нибудь захотите вернуться к использованию Gmail, я столкнулся с той же проблемой – код работал на моем локальном компьютере, но не на реальном сервере, – и думаю, что я понял, что вызывает его (по крайней мере, в моем случае ).
Похоже, что если сервер поддерживает IPv6 и IPv4, домен сервера разрешается как версия IPv6, поэтому PHP пытается подключиться к нему. Но я обнаружил, что smtp.gmail.com не ответил, поэтому через 30 секунд скрипт просто сдался и приурочен. Вы могли бы подумать, что PHP будет пытаться выполнить IPv4 после отказа IPv6, но нет.
Поэтому, когда я поменялся на IPv4-адрес smtp.gmail.com (полученный путем его ping-ing), все работало нормально и отправлено электронное письмо. Это не идеальный вариант использования IP-адреса вместо домена, поскольку он может меняться, но, по крайней мере, он экономит, выкапывая остальную половину серверных половиц 🙂
просто добавьте 74.125.130.108 smtp.gmail.com
в файл хостов сервера
Я опубликовал обходное решение в Swiftmailer Gmail Connection, приуроченное к № 110, где вы можете использовать IPv4 или IPv6.
Для меня проблема была в том, что я использовал tls-шифрование, вот порты для TLS и SSL. Не забывайте перезагружаться после изменения файла env.
smtp.gmail.com --- SSL --- 465 smtp.gmail.com --- StartTLS --- 587
Кроме того, вам необходимо изменить безопасность своей учетной записи google