Скрипт проверки хостинга на блокировку исходящего SMTP трафика
Как на PHP проверить блокирует или нет хостинг-провайдер исходящий SMTP-трафик? Функция проверки и описание работы.
Проблема блокировки хостинг-провайдером исходящего SMTP-трафика особенно актуальна на бесплатных аккаунтах хостингов, но встречается и на недорогих тарифах. Тогда при использовании библиотеки PHPMailer будет выдаваться следующая ошибка:
Connection failed. Error #2: stream_socket_client(): unable to connect to ssl://smtp.gmail.com:465 (Network is unreachable):
Для проверки блокирует ли хостинг-провайдер исходящий SMTP-трафик, вы можете использовать функцию `fsockopen()` в PHP. Эта функция позволяет установить сетевое соединение с удаленным сервером по указанному порту.
Вот пример функции, которая проверяет доступность SMTP-сервера на определенном хосте и порту:
function isSMTPBlocked($host, $port) { $timeout = 5; // Время ожидания подключения в секундах $socket = fsockopen($host, $port, $errno, $errstr, $timeout); if ($socket) { fclose($socket); return false; // Соединение успешно установлено, SMTP-трафик не блокируется } else { return true; // Не удалось установить соединение, SMTP-трафик блокируется } }
Вы можете вызвать эту функцию, передавая ей имя хоста SMTP-сервера и номер порта (обычно 25 или 587):
$host = 'smtp.example.com'; $port = 25; if (isSMTPBlocked($host, $port)) { echo 'Исходящий SMTP-трафик блокируется'; } else { echo 'Исходящий SMTP-трафик не блокируется'; }
Функция `isSMTPBlocked()` пытается установить соединение с указанным хостом и портом. Если соединение устанавливается успешно, то функция возвращает `false`, что означает, что исходящий SMTP-трафик не блокируется. В противном случае, если соединение не устанавливается, функция возвращает `true`, что означает, что исходящий SMTP-трафик блокируется.
Обратите внимание, что некоторые хостинг-провайдеры могут блокировать исходящий SMTP-трафик на уровне файрвола или других сетевых настроек, поэтому результаты этой проверки могут быть ограничены и зависят от конкретных настроек вашего хостинг-провайдера.
Скачать ZIP архив с файлом скрипта SMTPBlocked.php: Download file
Дата публикации: