Задать вопрос
@olyabolya

Не уходят письма по SMTP. Почему?

Добрый вечер!

Хочу сделать отправку заявок с сайта через SMTP. Делала с использованием phpmailer. Всё сделала, но при отправке формы страница просто перезагружается и форма никуда не уходит. В чём может быть проблема?
Также перестала работать маска номера в js (который раньше проверял, все ли поля заполнены)

Заранее спасибо!

Код формы:
<form class="row user_request" id="form" name="contact" action="form/mail.php" method="POST" novalidate enctype="multipart/form-data">                
    <input type="hidden" name="page" value="Смена адреса - консультация">
    <div class="inputwrap">
    <label for="name">Ваше имя<sup>*</sup></label>
    <input type="text" id="name" required name="name" class="text-input" />
    </div>

    <div class="inputwrap">
    <label for="phone">Контактный телефон<sup>*</sup></label>
    <input id="phone" type="text" name="phone" class="text-input phonemasked" placeholder="+7 (800) 000-00-00" required />
    </div>
    
    <span class="result_message"></span>

    <div class="inputwrap checkwrap">
        <input type="checkbox" name="check_agreement" id="check_agreement" required>
        <label for="check_agreement">
            С <a target="_blank" href="/согласие-на-обработку.htm">условиями</a> обработки персональных данных ознакомлен
            </label>
        <div class="g-recaptcha" data-sitekey="key" required></div>

    </div>
    
        <div class="inputwrap" style="float: right;">
        <input type="submit" name="submit" class="button" id="submit" value="Отправить">
    </div>

</form>


Код обработчика php:
<?php 

require_once('phpmailer/PHPMailerAutoload.php');
$mail = new PHPMailer;
$mail->CharSet = 'utf-8';

$name = $_POST['user_name'];

var_dump($_POST['page']);
$name = $_POST["name"];
$phone = $_POST["phone"];
$mail = $_POST["mail"];

//$mail->SMTPDebug = 3;                               // Enable verbose debug output

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp.yandex.ru';  																							// Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'mail@mail.ru'; // Ваш логин от почты с которой будут отправляться письма
$mail->Password = 'password'; // Ваш пароль от почты с которой будут отправляться письма
$mail->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 465; // TCP port to connect to / этот порт может отличаться у других провайдеров

$mail->setFrom('mail@mail.ru'); // от кого будет уходить письмо?
$mail->addAddress('mail@mail.ru);     // Кому будет уходить письмо 
//$mail->addAddress('ellen@example.com');               // Name is optional
//$mail->addReplyTo('info@example.com', 'Information');
//$mail->addCC('cc@example.com');
//$mail->addBCC('bcc@example.com');
//$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
//$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
$mail->isHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Новая заявка со страницы ' . $_POST['page'];
$mail->Body    = '' .$name . ' оставил заявку, его телефон ' .$phone. '<br>Почта этого пользователя: ' .$mail; 
$mail->AltBody = '';

if(!$mail->send()) {
    echo 'Error';
} else {
    header('location: form/спасибо.htm');
}
?>


Код js:
$(document).ready(function() {

// Добавляем маску для поля с номера телефона
$('.phonemasked').each(function(){
  $(this).mask('+7 (999) 999-99-99');
});
$(".user_request").submit(function() {
  if ( !this.checkValidity() )
    alert('Пожалуйста, заполните обязательные поля.');
  else  {
    $.ajax({
      type: "POST",
      url: "/form/mail.php",
      data: $( this ).serialize()
    }).done( function() {
      alert( "Заявка принята! В ближайшее время наш юрист с Вами свяжется." );
      // очищаем поля
      $('#name').val('');
      $('#phone').val('');
      $('#mail').val('');
    });
  }
  return false;
  });
});
  • Вопрос задан
  • 298 просмотров
Подписаться 1 Простой 7 комментариев
Пригласить эксперта
Ответы на вопрос 1
Открой консоль(в хроме это f12) и перезагрузи страницу и отправь форму. Скорее всего у тебя где-то ошибки в js. Отсюда и маска не работает и форма аяксом не отправляется
Ответ написан
Ваш ответ на вопрос

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

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