Скрипт проверки хостинга на блокировку исходящего 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
Дата публикации:

