Я пытаюсь использовать PHPMailer для отправки электронной почты с помощью SMTP и gmail. Точный скрипт работает на других серверах, но он не работает на сервере данной конкретной хостинговой компании.
Я проверил phpinfo()
и он сообщает мне, что allow_url_fopen
и нет никаких disabled_functions
таких как fopen
.
Сценарий выходит из строя, и он говорит мне:
SMTP -> ERROR: Failed to connect to server: Connection timed out (110)
или иначе
SMTP Error: Could not authenticate.
Я предполагаю, что это связано с тем, что он не может подключиться, потому что снова эта работа на других серверах и учетные данные для проверки подлинности верны.
Поэтому я прошу более подробно, есть ли способ, с помощью которого я могу использовать PHP или jailshell ssh
чтобы проверить, действительно ли порты открыты или нет?
Вы можете проверить открытые / доступные порты с помощью fsockopen
:
$fp = fsockopen('127.0.0.1', 25, $errno, $errstr, 5); if (!$fp) { // port is closed or blocked } else { // port is open and available fclose($fp); }
… где 5
– тайм-аут в секундах, пока вызов не завершится.
Вероятно, это связано с проблемой межсетевого экрана, когда ваш хостинг-провайдер блокирует вас от подключения к исходящим сокетам и / или определенным портам. Имейте в виду, что очень обычная конфигурация безопасности блокирует исходящие SMTP-порты. Еще в тот же день был заблокирован только 25
порт, но я начинаю замечать все больше и больше вариантов SSL.
Большинство провайдеров и хостинговых компаний позволят вам подключиться к собственному SMTP-серверу, чтобы спамеры не могли передавать ретрансляцию нежелательной почты.