HEX
Server: LiteSpeed
System: Linux php-prod-3.spaceapp.ru 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025 x86_64
User: sarli3128 (1010)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //proc/662498/root/home/retile.ru/public_html/smtp_test_mail.php
<?php

$smtp_host = 'smtp.timeweb.ru';
$smtp_port = 25; // STARTTLS порт
$smtp_user = 'cart@retile.ru';
$smtp_pass = 'G3pN3KX37';
$to_email = 'webservicemy@yandex.ru';
$from_email = $smtp_user;

echo "Проверка подключения к SMTP серверу...\n";
echo "Хост: $smtp_host\n";
echo "Порт: $smtp_port\n\n";

// Создаем соединение
$socket = @fsockopen($smtp_host, $smtp_port, $errno, $errstr, 30);

if (!$socket) {
    die("Ошибка подключения: $errstr ($errno)\n");
}

echo "Подключение установлено\n";

// Читаем приветственное сообщение
$response = fgets($socket, 515);
echo "Ответ сервера: $response";

// Отправляем EHLO
fputs($socket, "EHLO " . $smtp_host . "\r\n");
$response = fgets($socket, 515);
echo "EHLO ответ: $response";

// Читаем все строки ответа EHLO
while ($line = fgets($socket, 515)) {
    echo $line;
    if (substr($line, 3, 1) == " ") {
        break;
    }
}

// Проверяем поддержку STARTTLS
fputs($socket, "STARTTLS\r\n");
$response = fgets($socket, 515);
echo "STARTTLS ответ: $response";

if (substr($response, 0, 3) == "220") {
    // Включаем криптографию
    if (stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) {
        echo "STARTTLS успешно установлен\n\n";
        
        // Повторно отправляем EHLO после STARTTLS
        fputs($socket, "EHLO " . $smtp_host . "\r\n");
        $response = fgets($socket, 515);
        echo "EHLO после STARTTLS: $response";
        
        while ($line = fgets($socket, 515)) {
            echo $line;
            if (substr($line, 3, 1) == " ") {
                break;
            }
        }
        
        // Аутентификация
        fputs($socket, "AUTH LOGIN\r\n");
        $response = fgets($socket, 515);
        echo "AUTH LOGIN ответ: $response";
        
        if (substr($response, 0, 3) == "334") {
            fputs($socket, base64_encode($smtp_user) . "\r\n");
            $response = fgets($socket, 515);
            echo "Логин ответ: $response";
            
            if (substr($response, 0, 3) == "334") {
                fputs($socket, base64_encode($smtp_pass) . "\r\n");
                $response = fgets($socket, 515);
                echo "Пароль ответ: $response";
                
                if (substr($response, 0, 3) == "235") {
                    echo "\n✓ Аутентификация успешна!\n\n";
                    
                    // Попытка отправить тестовое письмо
                    fputs($socket, "MAIL FROM: <$from_email>\r\n");
                    $response = fgets($socket, 515);
                    echo "MAIL FROM ответ: $response";
                    
                    if (substr($response, 0, 3) == "250") {
                        fputs($socket, "RCPT TO: <$to_email>\r\n");
                        $response = fgets($socket, 515);
                        echo "RCPT TO ответ: $response";
                        
                        if (substr($response, 0, 3) == "250") {
                            fputs($socket, "DATA\r\n");
                            $response = fgets($socket, 515);
                            echo "DATA ответ: $response";
                            
                            if (substr($response, 0, 3) == "354") {
                                $message = "From: $from_email\r\n";
                                $message .= "To: $to_email\r\n";
                                $message .= "Subject: Тест SMTP подключения\r\n";
                                $message .= "\r\n";
                                $message .= "Это тестовое сообщение для проверки SMTP.\r\n";
                                $message .= ".\r\n";
                                
                                fputs($socket, $message);
                                $response = fgets($socket, 515);
                                echo "Отправка письма ответ: $response";
                                
                                if (substr($response, 0, 3) == "250") {
                                    echo "\n✓ Письмо успешно отправлено!\n";
                                }
                            }
                        }
                    }
                } else {
                    echo "\n✗ Ошибка аутентификации: $response\n";
                }
            }
        }
    } else {
        echo "Ошибка установки STARTTLS\n";
    }
} else {
    echo "Сервер не поддерживает STARTTLS\n";
}

// Закрываем соединение
fputs($socket, "QUIT\r\n");
fgets($socket, 515);
fclose($socket);

echo "\nСоединение закрыто\n";
die();