@fateseekers

Отправка сообщения с сайта через smtp?

Пытаюсь реализовать отправку сообщения с сайта с 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>
  • Вопрос задан
  • 616 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы