Php не выводит сообщение после отправки письма из формы

Есть стандартная форма для отправки почты.

<form action="mail/contact_me.php" method="post">
<input type="text" name="name" placeholder="Ваше имя" required/>
<input type="email" name="email" placeholder="email" required/>
<input type="phone" name="phone" placeholder="Телефон" required/>
<textarea name="message" rows="5" placeholder="Сообщение" required></textarea>
<button class="btn btn-primary">Отправить</button>
</form>

Все переменные расписаны и обработаны - trim и тд.
php выглядит следующим образом:

<?php
$name = $_POST["name"];
$email = $_POST["email"];
$mess = $_POST["message"];
$phone = $_POST["phone"];

$name = htmlspecialchars($name);
$email = htmlspecialchars($email);
$mess = htmlspecialchars($mess);
$phone = htmlspecialchars($phone);

$name = urldecode($name);
$email = urldecode($email);
$mess = urldecode($mess);
$phone = urldecode($phone);

$name = trim($name);
$email = trim($email);
$mess = trim($mess);
$phone = trim($phone);

mail("[email protected]", "Заявка с сайта", "Имя: " . "$name" . "\n" . "Телефон: " . "$phone" . "\n" . "E-mail: " . "$email" . "\n\n" . "Сообщение: " . "\n" . "$mess");
if (mail == TRUE) {
    echo "Заявка отправлена.";
} else {
    echo "Ошибка отправки.";
}
?>

Почему не выводится сообщение об отправки?
Письмо при этом отправляется и приходит на почту!


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

Автор решения: Shuhratjan Nizamov

Функция mail() вернёт TRUE или FALSE, поэтому необходимо проверить с условием mail(...) === true


даже если он возвращает true, это не означает, что сообщение будет отправлено. Все, что делает mail (), это добавляет сообщение в очередь (используя sendmail или что - то другое, что вы установили в php.ini.

Нет надежного способа проверить, было ли сообщение отправлено на php. Поэтому Вам наверно придется просмотреть журналы почтового сервера.

→ Ссылка
Автор решения: Confireus

Если письма приходят - нужно включить вывод ошибок на страницу и посмотреть, не падает ли mail() после отправки письма, не успев ничего вернутть. Поставьте в начало скрипта ini_set('display_errors',1);

→ Ссылка