Почему не приходит сообщение на почту?
$('#sendMail').on('click', function() {
let name = $('#name').val().trim();
let face = $('#face').val().trim();
let personal_account = $('#personal_account').val().trim();
let addres = $('#addres').val().trim();
let email = $('#email').val().trim();
let phone = $('#phone').val().trim();
let text = $('#text').val().trim();
$.ajax({
url: 'mail.php',
type: 'POST',
cache: false,
data: {
"name": name,
"face": face,
"personal_account": personal_account,
"addres": addres,
"email": email,
"phone": phone,
"text": text,
},
dataType: 'html',
beforeSend: function() {
$('#sendMail').prop('disabled', true);
},
success: function() {
$('#sendMail').prop('disabled', false);
alert("Успешно отправили заявку")
}
});
});
<?php $name=$_POST['name'];
$face=$_POST['face'];
$personal_account=$_POST['personal_account'];
$addres=$_POST['addres'];
$email=$_POST['email'];
$phone=$_POST['phone'];
$text=$_POST['text'];
$subject="=?utf-8?B?".base64_encode("Сообщение с сайта")."?=";
$headers="From: $email\r\nReply-to: $email" $success=mail("[email protected]", $subject. $text, $headers);
echo $success;
?>
<form id="form" method="post" action="mail.php">
<div class="feedback-form">
<div class="feedback-form__name">
<div class="feedback-form__title">Наименование организации / ФИО.*</div>
<input type="text" name="name" id="name" placeholder="Наименование организации / ФИО.*" class="form-input" required>
</div>
<div class="feedback-form__face">
<div class="feedback-form__title">Контактное лицо</div>
<input type="text" name="face" id="face" placeholder="Контактное лицо" class="form-input">
</div>
<div class="feedback-form__personal-account">
<div class="feedback-form__title">Лицевой счет*</div>
<input type="text" name="personal_account" id="personal_account" placeholder="Лицевой счет*" class="form-input" required>
</div>
<div class="feedback-form__addres">
<div class="feedback-form__title">Адрес*</div>
<input type="text" name="addres" id="addres" placeholder="Адрес*" class="form-input" required>
</div>
<div class="feedback-form__email">
<div class="feedback-form__title">E-mail*</div>
<input type="email" name="email" id="email" placeholder="E-mail*" class="form-input" required>
</div>
<div class="feedback-form__phone">
<div class="feedback-form__title">Контактный телефон*</div>
<input type="text" name="phone" id="phone" placeholder="Контактный телефон*" class="form-input" id="phone" value="999 999 99 99" required>
</div>
<div class="feedback-form__text">
<div class="feedback-form__title">Текст сообщения*</div>
<textarea type="text" name="text" id="text" placeholder="Текст сообщения*" class="form-input text" required></textarea>
</div>
<div class="feedback-form__fail">
<div class="feedback-form__title file">Прикрепить к приложению файл</div>
<input type="file" name="file" id="file" class="inputfile" />
<label for="file" class="input-file">Выбрать файл</label>
</div>
</div>
<button type="button" class="send" id="sendMail">Отправить сообщение</button>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script type="text/javascript" src="main.js"></script>
Ответы (1 шт):
Автор решения: Simon
→ Ссылка
У вас в строке $headers="From: $email\r\nReply-to: $email" $success=mail("[email protected]", $subject. $text, $headers); что-то напутано.
// вашем коде пропущена точка с запятой в самом конце
$headers="From: $email\r\nReply-to: $email";
// в вашем коде идет точка после $subject
$success=mail("[email protected]", $subject, $text, $headers);
И в целом, не мешало бы позаботиться о безопасности немного, потому что вам на почту по идее можно как минимум скрипт отправить.