FIKSER
@FIKSER

Почему не приходят сообщения на почту с формы обратной связи?

Html
spoiler
<form class="contact_form" action="send.php" method="post">
	</br></br></br></br>
 <p>
            <label for="name">Ваше имя:</label></br>
            <input type="text"  name="name" placeholder="Введите ваше имя" required />
        </p>
        <p>
            <label for="email">Email:</label></br>
            <input type="email" name="email" placeholder="Введите электронный адрес" required />
            
        </p>
        <p>
            <label for="message">Сообщение:</label></br>
            <textarea name="message" class="sms" cols="40" rows="6" required ></textarea>
        </p>
     <input name="bezspama" type="text" style="display:none" value="" />
      
            <button class="submit" type="submit">Отправить </button>
        
</form>


PHP
spoiler
<?php
 
/* Задаем переменные */
$name = htmlspecialchars($_POST["name"]);
$email = htmlspecialchars($_POST["email"]);
$tel = htmlspecialchars($_POST["tel"]);
$website = htmlspecialchars($_POST["website"]);
$message = htmlspecialchars($_POST["message"]);
$bezspama = htmlspecialchars($_POST["bezspama"]);
 
/* Ваш адрес и тема сообщения */
$address = "mail@gmail.com";
$sub = "Сообщение с сайта http://www.ru****.ru";
 
/* Формат письма */
$mes = "Сообщение с сайта.\n
Имя отправителя: $name 
Электронный адрес отправителя: $email
Текст сообщения:
$message";
 
 
if (empty($bezspama)) /* Оценка поля bezspama - должно быть пустым*/
{
/* Отправляем сообщение, используя mail() функцию */
$from  = "From: $name <$email> \r\n Reply-To: $email \r\n";
if (mail($address, $sub, $mes, $from)) {
 header('Refresh: 5; URL=http://www.ru******y.ru');
 echo '<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
    <body>Письмо отправлено, через 5 секунд вы вернетесь на страницу r******y.ru</body>';}
else {
 header('Refresh: 5; URL=http://www.r******y.ru');
 echo '<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
    <body>Письмо не отправлено, через 5 секунд вы вернетесь на страницу r.*****y.ru</body>';}
}
exit; /* Выход без сообщения, если поле bezspama заполнено спам ботами */
?>

На локалке все работает нормально, сообщения моментально создаются.
  • Вопрос задан
  • 124 просмотра
Пригласить эксперта
Ответы на вопрос 2
@kostya_dev
Возможно проблема на стороне сервера. Возможно используете пробный период, где отправка писем зачастую запрещена.
Ответ написан
Комментировать
slo_nik
@slo_nik Куратор тега PHP
Добрый вечер.
Проверил Ваш код на локалке и на реальном сервере.
Что ж, код вполне рабочий, на gmail пришло сообщение, но есть пару моментов.
Вот это выдаёт на локалке:
h_1513966328_9875525_4cc90eabe7.png
А это в логах сервера:
[Fri Dec 22 21:07:34.386230 2017] [lsapi:notice] [pid 21650] [client ********] [host *****] Backend log: PHP Notice:  Undefined index: tel in /var/www/*****/data/www/*****/send.php on line 6\n, referer: http://*****/form.html
[Fri Dec 22 21:07:34.386279 2017] [lsapi:notice] [pid 21650] [client ********] [host *****] Backend log: PHP Notice:  Undefined index: website in /var/www/*****/data/www/*****/send.php on line 7\n, referer: http://*****/form.html

Устраняйте предупреждения, ошибки, проверяйте свои логи.

Ещё могу добавить то, что у Вас не все желательные параметры указаны для отправки письма. Я про заголовки. Это тоже может сыграть свою роль.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы