php mail скрипт

Чот в голову пришла идея написать скриптик для транзита данных с формы обратной связи, потому что на хостинге php нельзя, а на моем можно. Но вот странная какая-то хрень, он вроде бы работает, только при этом не хочет выводить какую-то инфу. Там сначала виснет, потом выдает ошибку 504. Кстате, у меня веб-сервер находится на 192.168.88.198 за NAT-ом и реверс-прокси nginx 192.168.88.225, и почтовые порты на него не проброшены... Почтовик iRedMail расположен на 192.168.88.202. Только в коде скрипта даже нет никакого обращения к нему... Если честно, я вообще не понимаю как это работает.

    <?php
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Проверяем наличие всех необходимых полей
    if (isset($_POST['Email-3']) && isset($_POST['Phone-2']) && isset($_POST['Message-2'])) {
    $email = htmlspecialchars(trim($_POST['Email-3']));
    $phone = htmlspecialchars(trim($_POST['Phone-2']));
    $message = htmlspecialchars(trim($_POST['Message-2']));

    // Отображаем полученные данные
    echo "<h3>Полученные данные:</h3>";
    echo "Email: $email<br>";
    echo "Телефон: $phone<br>";
    echo "Сообщение: $message<br>";

    // Адрес получателя
    $to = "[email protected]"; 
    $subject = "Сообщение с формы обратной связи";
    $body = "Email: $email\nТелефон: $phone\nСообщение:\n$message";

    // Заголовки письма
    $headers = "From: [email protected]\r\n" .
               "Reply-To: $email\r\n" .
               "X-Mailer: PHP/" . phpversion();

    // Отправляем email
    if (mail($to, $subject, $body, $headers)) {
        echo "Данные успешно отправлены!";
    } else {
        echo "Ошибка при отправке данных.";
    }
    } else {
    echo "Пожалуйста, заполните все поля.";
    
    // Для отладки можно вывести все POST данные
    echo "<h3>POST данные:</h3>";
    echo "<pre>";
    print_r($_POST);
    echo "</pre>";
    }
    } else {
    // Чекер для тестирования
    echo "Скрипт работает! Попробуйте отправить форму.";
    }
    ?>

А вопрос вот какой: как сделать, чтобы скрипт не "зависал"? В чем может быть проблема?


Ответы (0 шт):