Не отправляются почтовые сообщения с веб-форм - Аспро

Не отправляются почтовые сообщения с веб-форм – Аспро

Не отправляются почтовые сообщения с веб-форм – аспро

С форм обратной связи не отправляются почтовые сообщения. Инструкция не помогла. Наблюдаемые ошибки: страница с формой перезагружается, не отправив сообщение, или отправка происходит, но администратору сообщения не приходят.

Письма не приходят только на почтовый ящик на домене

Проблема может наблюдаться когда на домене настроена сторонняя почта (Yandex, GoogleApps..), а в панели управления все еще активирована локальная почта.В этом случае проблему решит отключение локальной маршрутизации почты. Делается это в панели управления хостингом:

Готово. Отключение локальной маршрутизации почты решит проблему.

Почему перестала работать форма отправки заявок?

Внезапно и просто так ничего не происходит.

Кто-то, что-то поменял. И это что-то может быть совсем разным
1. Обновили/изменили jQuery или что-то другое на клиенте
2. Обновили/изменили сервер или какой-то скрипт на сервере или там сменили у хостинг провайдера какую-то настройку или тариф.

Проверка в разных браузерах – в данном случае все равно что протереть монитор от пыли. Вам нужно шаг за шагом проверить выполнение скрипта.
Для начала откройте консоль браузера, посмотрите есть ли ошибки, во вкладке network посмотрит уходит ли запрос, возвращается ли ответ.
Попробуйте узнать у всех причастных, кто и что поменял.

Не работает отправка по кнопке. что делать?

Spartak (Web-StyleStudio), вот, что выдал:

60b155aa9299e887848366.png

Текстом: Notice: Undefined index: user in D:OpenServerdomainslocalhost222calc.php on line 161

Notice: Trying to access array offset on value of type null in D:OpenServerdomainslocalhost222calc.php on line 161

Notice: Undefined variable: id in D:OpenServerdomainslocalhost222calc.php on line 163

Fatal error: Uncaught mysqli_sql_exception: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ”l_tr’, `ctg`, `o_ttt`, `d_nn`, `q_qq`, `o_ttt`, `d_nn`, `q_qq`, `n_nn`, `o_2`, ‘ at line 1 in D:OpenServerdomainslocalhost222calc.php:163 Stack trace: #0 D:OpenServerdomainslocalhost222calc.php(163): mysqli_query() #1 {main} thrown in D:OpenServerdomainslocalhost222calc.php on line 163

Вот те строки:

$user_id = $_SESSION['user']['id'];

  mysqli_query($connect, "INSERT INTO `input`(`id`, `D_fl`, `D_proh`, `D_pr`, `H_p`, `b_p`, `D_sh`, `R_dav`, `P_t`, `b`, `H_sh`, `h`, `P_dav`, `T_s`, `d_s`, `P_ma`, `L_ma`, `o_ooo`, `h_ooo`, `d_ooo`, 'l_tr', `ctg`, `o_ttt`, `d_nn`, `q_qq`, `o_ttt`, `d_nn`, `q_qq`, `n_nn`, `o_2`, `q_23`, `h_2`, `d_22`, `d_mnkt`, `n_dn`, `o_3`, `d_vn`, `d_na`, `q_3`, `d_mnkb`, `o_4`, `d_vn2`, `q_4`, `d_m4`, `o_o4`, `q_5`, `o_55`, `p_u77`, `p_s77`, `k_77`, `q_888`, `d_na888`, `date`) VALUES ('$id', '$D_fl', '$D_proh', '$D_pr', '$H_p', '$b_p', '$D_sh', '$R_dav', '$P_t', '$b', '$H_sh', '$h', '$P_dav', '$T_s', '$d_s', '$P_ma', '$L_ma', '$o_ooo', '$h_ooo', '$d_ooo', '$l_tr', '$ctg', '$o_ttt', '$d_nn', '$q_qq', '$o_ttt', '$d_nn', '$q_qq', '$n_nn', '$o_2', '$q_23', '$h_2', '$d_22', '$d_mnkt', '$n_dn', '$o_3', '$d_vn', '$d_na', '$q_3', '$d_mnkb', '$o_4', '$d_vn2', '$q_4', '$d_m4', '$o_o4', '$q_5', '$o_55', '$p_u77', '$p_s77', '$k_77', '$q_888', '$d_na888', '$date')");

Почему на хостинг не работает форма отправки php?

Не работает форма обратной связи на сайте, не могу понять почему, в консоли нет ни одной ошибки.

При отправке с open server в логах почты все приходит, а на хостинге появляется уведомления об успешной отправке, но так ничего и не доходит.

<?php
if (isset($_POST['name'])){
$to = ""; 
$subject = '=?UTF8?B?'.base64_encode('Сообщение с сайта').'?=';
$sitename = "http://www.prav.online";

$name = trim($_POST["name"]);
$phone = trim($_POST["phone"]);
$message = trim($_POST["message"]);
$name = htmlspecialchars($name);
$phone = htmlspecialchars($phone);
$name = urldecode($name);
$phone = urldecode($phone);
$name = trim($name);
$phone = trim($phone);

$message = ' 
 
  
  
  
  
Имя: '.$name.'
Телефон: '.$phone.'
Текст: '.$message.'
  
'; 

$headers = "Content-type: text/html; charset=utf-8 rn"; 
$headers.= "From: ".$subject." <".$sitename.">rn"; 

mail($to, $subject, $message, $headers); 
}
?>
<form >
           <form action="/php.php" method="POST">
           <input type="text" name="name" placeholder="введите ваше имя">
           <input type="text" name="phone" placeholder="введите ваш телефон">
           <input type="hidden" name="source" value="">
           <input type="hidden" name="keyword" value="">
           <input type="hidden" class="ref" name="ref">
           <input type="hidden" name="myform" value="forma_verh" >
		   
		   <textarea name="message" placeholder="Введите вопрос или удобное для вас время для звонка"></textarea>
           <input type="button" value="Отправить">
         </form>
if(f==0){
        $.ajax({
          type: "POST",
          url: 'php.php',
          data: {name:name, phone:phone, source:source, keyword:keyword, ref:ref, message:message},
          success :function (data) {;
            ga('send', 'event', 'posle_proverki_formy', 'otpravit_zayavku', myform);

            $('.bg_popup').hide();
            $('.main_modal').hide();
            $('.modal').hide();

            $('.thankyou').css('top', $(window).scrollTop()   $(window).height() / 2 - $('.thankyou').height() / 2 ).show();
            $('.bg_popup').show();
            setTimeout(function(){
             $('.thankyou').hide();
             $('.bg_popup').hide();
           }, 8000); 
            $('input[type="text"]').val('');
            $('textarea').val('');
          },
          dataType : 'text'
        });
      }
$(document).ready(function() {

	$("form4").submit(function() {
		$.ajax({
			type: "POST",
			url: "/php.php",
			data: $(this).serialize()
		}).done(function() {
			$(this).find("input").val("");
			alert("Спасибо за заявку! Скоро мы с вами свяжемся.");
			$("form4").trigger("reset");
		});
		return false;
	});
	
});

Не приходят на почту уведомления о заполнении веб-форм

Шаги решения проблемы:

  1. Переходим в админ панель: Настройки -> Настройки продукта ->Настройки модулей  -> Веб-формы. Отключаем флажок «использовать упрощенный режим». Переходим к настройкам компонента веб-форм на сайте. Вкладка дополнительно. Должен присутствовать флажок активирующий привязку к почтовому шаблону.
  2. Переходим: Панель управления -> Настройки -> Настройки продукта -> Почтовые события. Находим почтовый шаблон для веб-формы. Проверяем правильность данных:
  • Шаблон должен быть активен;
  • Привязан к одному из сайтов(если многосайтовость);
  • От кого: #DEFAULT_EMAIL_FROM#;
  • Кому: #DEFAULT_EMAIL_FROM#».
Сейчас ищут техподдержку:  Как связаться с администрацией ВКонтакте |

Не работает кнопка отправки формы

Есть такой html код:

<html>
<head>
<meta charset="utf-8">
<title>Test</title>
<link rel="stylesheet" href="style.css">

</head>
<body>
<div class="backgr">
<br><br><br><br><br><br><br>
  <h2 class=text align="center"> Оставьте заявку </h2>
  <form name="test" method="post" action="sendform.php" align="center">
    <div>  
      <input type="text" class="brd" placeholder="Имя" name="first_name">
    </div>
    <div>  
      <input type="text" class="brd" placeholder="Телефон" name="phone_number">
    </div>
    <div>
      <input type="text" class="brd" placeholder="E-mail" name="client_mail">  
    </div> 
      <br>
    <div>  
      <button type="submit" form="test" name="sended" class="button">Отправить форму</button>
      </div>
        </form>
<br><br><br><br><br><br><br><br><br><br>   
</div>
</body>
</html>

Php файл для отправки формы выглядит так:

<?php
    function died($error) {        
        die();
    }

    if(!isset($_POST['sended'])) {
        died("Йуху");
    }

$first_name = $_POST['first_name'];
$phone_number = $_POST['phone_number']; 
$client_mail = $_POST['client_mail'];
$email1="leshaber24@yandex.ru";
$email_message = str_replace("#USER_NAME#", $first_name, file_get_contents("./emailinfo.html"));    
$email_message = str_replace("#PHONE_NUMBER#", $phone_number, file_get_contents("./emailinfo.html"));
$email_message = str_replace("#CLIENT_MAIL#", $client_mail, file_get_contents("./emailinfo.html"));
$headers = 'From: '.$email1."rn".
'Reply-To:'.$email1."rn" .
'X-Mailer: PHP/' . phpversion();
$headers .= 'MIME-Version: 1.0'."rn";
$headers .= 'Content-type: text/html; charset=utf-8' . "rn";    
mail($email1, "Тестовое задание", $email_message, $headers);  
?>

<meta charset="utf-8">
<h1 class="animated shake">Спасибо, с вами скоро свяжутся!</h1>

И само письмо, которое должно приходить на почту:

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="width=device-width">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Письмо с сайта</title>
    <style type="text/css">
    <p style="font-family:sans-serif;font-size:14px;font-weight:normal;margin:0;Margin-bottom:15px;">Привет, меня зовут: <span>#USER_NAME#</span> </p>
    <p style="font-family:sans-serif;font-size:14px;font-weight:normal;margin:0;Margin-bottom:15px;">Мой номер: <span>#PHONE_NUMBER#</span> </p>
    <p style="font-family:sans-serif;font-size:14px;font-weight:normal;margin:0;Margin-bottom:15px;">Моя почта: <span>#CLIENT_MAIL#</span> </p>    
  </body>
</html>

Не нажимается на сайте сама кнопка отправить и соответственно не выполняется php код.
Спасибо!

Не отправляется вся почта через phpmail

Проверьте, возможно ваш тарифный план «Host-Lite». На данном тарифе нет поддержки PHP, следовательно отправка сообщений с сайта посредством phpmail работать не будет. Узнать тарифный план можно на странице со списком услуг. Чтобы у вас появилась возможность отправки почты при помощи php, просто повысьте тарифный план: Как повысить тарифный план хостинга.

В других случаях, вероятнее всего, для вашей услуги хостинга заблокирована отправка сообщений через phpmail. Пожалуйста, выполните рекомендации следующего раздела справки:
Отправка почты заблокирована

Отправка писем с сайта – неожиданная причина проблемы – блог игоря калмыкова

Ограничения на использование памяти могут стать причиной неотправки писем

На днях столкнулся со странной проблемой у одного из наших клиентов, чей сайт хостится в RU-CENTER – перестали отправляться письма с данными заполненной формы обратной связи на сайте. Сам он сделан на WordPress, для отправки данных использовалась форма, созданная с помощью плагина Contact Form 7 – очень популярная связка, нормально работающая во всех остальных местах. Проблема носила преходящий характер – иногда письма все же отправлялись.

Сейчас ищут техподдержку:  Помощь и техническая поддержка абонентов Билайн

Приступил к исследованию. Запуск простейшего скрипта на PHP с функцией mail() письмо отправил.

    $to = 'мой и-мейл";
    $subject = 'Test of e-mail sending';
    $message = 'This is just a test e-mail.';
    mail($to, $subject, $message);

Идем дальше. Попробовал запустить чуть более сложный скрипт, использующий для отправки тестового письма родную функцию WordPress – wp_mail().

    

    $to = "мой и-мейл";

    // Тема и содержание письма
    $subject = 'Тест функции wp_mail';
    $message = 'Это тест работоспособности функции wp_mail';
    $headers = '';

    // Грузим ядро WordPress без его тем оформления
    define('WP_USE_THEMES', false);
    require('wp-load.php');

    // Вызываем функцию wp_mail(), выводим результат в окне браузера
    if( wp_mail( $to, $subject, $message, $headers ) ) {
        echo 'Тестовое сообщение успешно отправлено, проверьте свой почтовый ящик.';
    } else {
        echo 'Не удалось отправить письмо :(';
    };

Уже не сработало, письмо не стало отправляться. Поскольку заподозрить наличие ошибки в родной для WordPress и тщательно вылизанной функции wp_mail() было трудно, отправился на поиски в Интернет. Первые же запросы вывели на многочисленные обсуждения сходных проблем для самых разных CMS, и даже на официальное описание возможности такой проблемы в разделе FAQ хостера: http://hosting.nic.ru/support/php_setup.shtml#p3.5

Оказалось, что установленное ограничение на потребляемую на выбранном тарифе оперативную память (в нашем случае это ограничение составляло 128МБ) может приводить не к замедлению работы, как это обычно бывает на других хостингах, а к частичной или полной неработоспособности сайта или сайтов, если их несколько.

График, отображающий потребление памяти в течение недели сайтом на WordPress, работающим на хостинге от RU-CENTER (nic.ru)

В таких обстоятельствах, если смена хостинга не рассматривается как решение, можно и нужно попытаться уменьшить потребляемую память, отключив не используемые плагины и задействовав одну из систем кэширования, однако полностью полагаться на это как-то уже не очень хочется.

Решением стала установка одного из плагинов, позволяющего использовать для отправки писем с сайта сторонний SMTP-сервер. Наилучший работающий вариант в данном случае – SMTP-сервер от хостинг-провайдера nic.ru. Создал новую почтовую учетную запись, установил плагин WP SMTP (http://wordpress.org/plugins/wp-smtp/), настроил его для работы через 25 порт без защиты (с включенной опцией SMTP Secure, кстати, не работало), и письма сразу же стали уходить, даже до оптимизации потребляемой памяти сайтом.

Сейчас ищут техподдержку:  Не работает php mail() на хостинге

Настройки плагина WP SMTP для WordPress на хостинге от RU-CENTER (nic.ru)

Если резюмировать, то я, конечно, был сильно удивлен именно таким способом применения ограничений на используемую сайтом память, создающим риск спонтанной потери функциональности.  Сам, к счастью, пользуюсь более безопасным и удобным в этом и других смыслах хостингом, про который даже несколько раз писал. На нем и памяти как минимум в два раза больше, и считается она по-другому: если здесь учитывается вся память, потребляемая веб-сервером, то там учитывается лишь память, потребляемая запущенными на сайте скриптами, а это, как нетрудно догадаться, «две большие разницы».

Проверить отправляются ли письма

Для проверки достаточно на любой страничке написать следующий php код:

Список отправленных писем

В битриксе нет как такого инструмента, который бы показывал сработавшие почтовые шаблоны и соответствующие отправленные письма. Но всё таки существует обходной путь, как просмотреть их.

Для этого нужно зайти в Админку Битрикс, далее Настройки -> Инструменты -> SQL-запрос. Ввести следующий sql код:

select * from b_event
where event_name like '%form%'
order by date_insert desc

Вместо %form% нужно указать конкретный тип почтового события например так, чтобы посмотреть отправленные письма о новых заказах:

select * from b_event
where event_name like 'SALE_NEW_ORDER'
order by date_insert desc

Либо можете вообще убрать вторую строку. В результате получите таблицу всех сработавших событий. Нас интересует колонка SUCCESS_EXEC.‘Y’ — означает успешная отправка;‘N’ или 0 — письмо не отправлено;‘F’ — ошибкаЕсли найденные записи имеют значение ‘Y’ — это означает, что они отправлены и проблем быть не должно.Но у нас всё плохо, значит обращаемся в тех. поддержку хостинга.

Если ‘N’ или 0- письма по какой-то причине не ушли.Может помочь такое решение:перейдите по пути: <вашсайт>/bitrix/php_interface/dbconn.php

Закомментируйте или удалите следующие строки:

define('BX_CRONTAB', true);
define('BX_CRONTAB_SUPPORT', true);

Попробуйте протестировать снова. Если после этого SUCCESS_EXEC также имеет значение ‘N’, то перейдите в  <вашсайт>/bitrix/managed_cache/ . Удалите содержимое через модуль управления структурой( не в коем случае не используйте FTP). Если вылезет ошибка, то не хватает доступа. Измените доступ к папкам и повторите снова.

Еще один способ — воспользоваться встроенными методами CMS Битрикс по диагностике.

Ошибки, найденные в процессе диагностики, могут являються причиной вашей проблемы.

Возможная ошибка — почтовый сервер не поддерживает формат письма. Попробуйте изменить настройки отправки.

  • Убрать BBC
  • Убрать дублирование email в заголовке
  • Установить Конвертировать 8-битные заголовки

Если ничего не помогло, попробуйте запросить у хостера логи почтового сервера.

Хочу рассмотреть частный случай:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

Оставьте комментарий

Adblock
detector