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 "Скрипт работает! Попробуйте отправить форму.";
}
?>
А вопрос вот какой: как сделать, чтобы скрипт не "зависал"? В чем может быть проблема?