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

PHP
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):

PHP
$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

Дата публикации: 

ТОП 10 случайных публикаций



Сайт разработан студией © WEB-VidST   


Яндекс.Метрика