O
O
Olga2018-11-26 19:37:12
PHP
Olga, 2018-11-26 19:37:12

Letters on SMTP do not leave. Why?

Good evening!
I want to send requests from the site via SMTP. Made using phpmailer. I did everything, but when submitting the form, the page simply reloads and the form does not go anywhere. What could be the problem?
Also, the number mask in js stopped working (which used to check if all fields are filled in)
Thanks in advance!
Form code:

<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 handler code:
<?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 = '[email protected]'; // Ваш логин от почты с которой будут отправляться письма
$mail->Password = 'password'; // Ваш пароль от почты с которой будут отправляться письма
$mail->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 465; // TCP port to connect to / этот порт может отличаться у других провайдеров

$mail->setFrom('[email protected]'); // от кого будет уходить письмо?
$mail->addAddress('[email protected]);     // Кому будет уходить письмо 
//$mail->addAddress('[email protected]');               // Name is optional
//$mail->addReplyTo('[email protected]', 'Information');
//$mail->addCC('[email protected]');
//$mail->addBCC('[email protected]');
//$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 code:
$(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;
  });
});

Answer the question

In order to leave comments, you need to log in

1 answer(s)
E
Eugene Chronos, 2018-11-26
@XPOHOC69

Open the console (in chrome it's f12) and reload the page and submit the form. Most likely you have some errors in js. Hence the mask does not work and the form is not sent by Ajax

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question