+ Ответить в теме
Показано с 1 по 4 из 4

Тема: На почту не приходят письма с заявками отправленные через лендинг

  1. #1
    Новичок it-seo77 на пути к лучшему Аватар для it-seo77
    Регистрация
    22.12.2016
    Сообщений
    1
    Thanks
    0
    Thanked 0 Times in 0 Posts

    На почту не приходят письма с заявками отправленные через лендинг

    Всем привет, не могу разобраться почему на почту с лендинга не приходят заявки.
    Есть файл script.js в нём есть такая часть содержимого.

    function clearForm () {
    $(this).removeClass('valid-for-file-upload');
    $('input:not(":checkbox"), textarea, select').val('');
    $('.form-group').removeClass('has-success').removeClass('has-error');
    formtype = '';
    };
    $thisText = $(this).text();
    $thisBtn.addClass('disabled').text('Отправка...')

    $.ajax({ //отправляем аяксом
    url:'php/mail.php',
    type:'POST',
    data:'jsonData=' + $.toJSON(formData),
    success: function() {
    $('.submit-form-loading').fadeOut();
    $('.submit-form-error').fadeOut();
    magnificPopup.close();
    setTimeout(function() {
    $('.thank-you-btn').magnificPopup({
    type: 'ajax',
    removalDelay: 500,
    ajax: {
    settings: null,
    cursor: 'mfp-ajax-cur',
    tError: '<a href="%url%">Контент</a> не может быть загружен.',
    },
    callbacks: {
    beforeOpen: function() {
    this.st.mainClass = 'mfp-zoom-in';
    },
    },
    midClick: true
    }).magnificPopup('open');
    }, 501);
    $thisBtn.removeClass('disabled').text($thisText);
    clearForm ();
    reachGoalFunc(yaTarget);
    reachGoalFunc(obwee_koli4estvo);

    },
    error: function() {
    alert('При отправке данных произошла ошибка, попробуйте снова.');
    $thisBtn.removeClass('disabled').text($thisText);
    clearForm ();
    }
    });
    }
    });
    });


    В файле index.php следующая часть кода:

    <div class="buy-one-click">
    <div class="container">
    <div class="section-title">
    <h3>Продайте всего за 1 клик!</h3>
    </div>
    <a href="modal-service1.html" class="ajax-popup-link btn btn-success" style="text-transform: none; padding: 20px 20px 20px 40px; width:300px; margin:10px auto 0; display:block; line-height: 0.8;position:relative; font-size:22px;"><img src="img/arrow-right.png" style="position:absolute; top:21px;left:53px;">Оставить
    заявку</a>

    </div>


    И третий файл mail.php

    <?php
    if (isset($_POST['notEmpty'])) {$name = $_POST['notEmpty'];}
    if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
    if (isset($_POST['formData'])) {$formData = $_POST['formData'];}

    $to = "online@yandex.ru"; /*Укажите адрес, га который должно приходить письмо*/
    $sendfrom = "online@yandex.ru"; /*Укажите адрес, с которого будет приходить письмо, можно не настоящий, нужно для формирования заголовка письма*/
    $headers = "From: " . strip_tags($sendfrom) . "\r\n";
    $headers .= "Reply-To: ". strip_tags($sendfrom) . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html;charset=utf-8 \r\n";
    $subject = "Новая заявка";
    $message = "$formData<br> <b>Имя пославшего:</b> $name <br><b>Телефон:</b> $phone<br>";
    $send = mail ($to, $subject, $message, $headers);
    ?>


    Не могу понять где тут и что неправильно.

  2. #2
    Пользователь Art Lev на пути к лучшему Аватар для Art Lev
    Регистрация
    28.01.2016
    Сообщений
    51
    Thanks
    0
    Thanked 5 Times in 5 Posts
    Очень много лишнего кода. Из формы берите поля, затем $.post передавайте в скрипт (не забыв использовать trim() и strip_tags()), после чего формируете php mail.
    Кстати, при отправке, проверьте, что вам возвращает функция mail(), если 0, то дело в сервере, если 1, то всё должно работать.

  3. #3
    Местный Dmitrii на пути к лучшему Аватар для Dmitrii
    Регистрация
    07.09.2010
    Сообщений
    140
    Thanks
    15
    Thanked 2 Times in 2 Posts
    Возможно мой мозг спросонья что-то не так понял, но:
    1. Вы отправляете из AJAX POST-параметр jsonData=...:
    Цитата Сообщение от it-seo77 Посмотреть сообщение
    type:'POST',
    data:'jsonData=' + $.toJSON(formData),
    success: function() {
    А принимаете в PHP notEmpty, phone и formData:
    Цитата Сообщение от it-seo77 Посмотреть сообщение
    if (isset($_POST['notEmpty'])) {$name = $_POST['notEmpty'];}
    if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
    if (isset($_POST['formData'])) {$formData = $_POST['formData'];}
    2. Откуда вы в JS берёте formData? До того момента, как он указывается в data AJAX'а, он нигде не появляется.

    3. Если AJAX проходит (о чём можно судить, если выполняются действия в случае успеха, описанные после success:), то письмо должно уйти, но если вы напутали с переменными, то должен прийти текст: " Имя пославшего: Телефон: ". Если письмо вообще не отправляется, то либо где-то напортачили с самим AJAX'ом, в результате чего тупо не производится запрос к файлу mail.php (откройте консоль по F12 и смотрите на наличие ошибок при отправке), либо нет технической возможности отправить письмо функцией mail(). Другое дело – если письмо отправляется, но не доходит. Тогда надо посмотреть на наличие IP сервера в блэк-листах, например тут: http://mxtoolbox.com/blacklists.aspx
    Последний раз редактировалось Dmitrii; 29.12.2016 в 07:06.

+ Ответить в теме

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 12.11.2013, 07:00
  2. Ответов: 4
    Последнее сообщение: 09.01.2013, 18:21
  3. Ответов: 7
    Последнее сообщение: 01.02.2010, 17:38
  4. Ответов: 0
    Последнее сообщение: 22.12.2008, 10:22
  5. Ответов: 1
    Последнее сообщение: 10.10.2008, 22:43

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения

 

Html-форум Рейтинг@Mail.ru