Пытаюсь реализовать отправку сообщения с сайта с ajax через phpmailer и smtp. Ошибку не выдаёт, страница не обновляется, но сообщение не приходит. Вот код:
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" => 'prophotomaster@bk.ru', // Логин запрашиваемый при авторизации на SMTP сервере
"password" => '****', // Пароль
"addreply" => 'prophotomaster@bk.ru', // Почта для ответа
"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('fateseekers@mail.ru', '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();
}
?>
И сама форма:
<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>