F
F
fateseekers2018-04-01 15:52:44
PHP
fateseekers, 2018-04-01 15:52:44

Sending a message from a website via smtp?

I'm trying to implement sending a message from a site with ajax via phpmailer and smtp. It doesn't throw an error, the page doesn't refresh, but the message doesn't arrive. Here is the code:

Ajax:

(function($){
    $(document).ready(function(){
        $('type["button"]').click(function(){
            var name    = $('name').val();
            var email   = $('email').val();
            var select = $('select').val();

            $.ajax({
                url: "../php/mail.php", // куда отправляем
                type: "post",
                dataType: "json", // тип передачи данных
                data: { 
                    "name":    name,
                    "email":   email,
                    "select": select
                },
                success: function(data){
                    $('.messages').html(data.result);
                }
            });
        });
    });
});


config.php:
<?php

$__smtp = array(
    "host" => 'smtp.mail.ru', // SMTP сервер
    "debug" => 2, // Уровень логирования
    "auth" => true, // Авторизация на сервере SMTP. Если ее нет - false
    "port" => '465', // Порт SMTP сервера
    "username" => '[email protected]', // Логин запрашиваемый при авторизации на SMTP сервере
    "password" => '****', // Пароль
    "addreply" => '[email protected]', // Почта для ответа
    "secure" => 'ssl', // Тип шифрования. 
    "mail_title" => 'Заявка с сайта Prophotomaster.pro!', // Заголовок письма
    "mail_name" => 'Prophotomaster' // Имя отправителя
);

?>


mail.php:
<?php

  require_once('config.php'); //Файл конфигурации для вашего smtp сервера
  require_once('/phpmailer/PHPMailerAutoload.php'); //Файл автоматической подгрузки классов PHPMailer

  $name = $_POST['name'];
  $email = $_POST['email'];

      switch($_POST['select']){
              case 1:
                  $select = "Свадебная съёмка";
                  break;
              case 2:
                  $select = "Портретная съёмка";
                  break;
              case 3:
                  $select = "Фотосъёмка интерьера";
                  break;
              case 4:
                  $select = "Фотосъёмка еды";
                  break;
              case 5:
                  $select = "Детская фотосессия";
                  break;
          }
          
  try{
      $mail = new PHPMailer(true);

      $mail->IsSMTP();
      $mail->Host       = $__smtp['host'];
      $mail->SMTPDebug  = $__smtp['debug'];  
      $mail->SMTPAuth   = $__smtp['auth'];
      $mail->Port       = $__smtp['port'];
      $mail->SMTPSecure = $__smtp['secure'];
      $mail->CharSet="UTF-8";
      $mail->Username   = $__smtp['username'];
      $mail->Password   = $__smtp['password'];
      $mail->AddAddress('[email protected]', 'Pavel');
      $mail->AddReplyTo($__smtp['addreply'], 'First Last');
      $mail->SetFrom($__smtp['username'], $__smtp['mail_title']);
      $mail->Subject = htmlspecialchars($__smtp['mail_title']);
      $mail->MsgHTML("Имя отправителя: ".$name."/r/n"."Почта отправителя: ".$email."/r/n"."Выбранная услуга: ".$select."/r/n");
      $mail->Send();
      return 1;
    } catch (phpmailerException $e) {
      	return $e->errorMessage();
    }
?>


And the form itself:
<form id="form" method="POST">
      <label for="select">Выберите услугу*: </label>
        <select required>
          <option value="1">Свадебная съёмка</option>
          <option value="2">Портретная съёмка</option>
          <option value="3">Фотосъёмка интерьера</option>
                <option value="4">Фотосъёмка еды</option>
          <option value="5">Детская фотосессия</option>
        </select>

        <label for="name">Ваше имя*: </label>
             < input type="text" name="name" required>
        <label for="email">Ваша почта*: </label>
        <input type="email" name="email" required>
      <input  type="reset">
      <input id="formLetter" type="button" value="Отправить">
</form>

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question