Answer the question
In order to leave comments, you need to log in
The message is not sent to the mail, what could be the problem?
The data itself is sent to the php handler, but there is already an error, I can’t find it
<form method="POST" id="callback" class="callback-form forms" enctype="multipart/form-data">
<input id="callback_phone" type="tel" placeholder="+7" name="phone">
<input id="callback_name" type="text" placeholder="Введите Ваше имя" name="name">
<textarea name="callback_comment" id="comment" cols="30" rows="10" placeholder="Введите комментарий (если необходимо)"></textarea>
<input name="myfile" type="file" accept="image/*,image/jpeg">
<input type="submit" id="form-send" class="btn-form-callback" value="Сделать заказ">
</form>
// Отправка данных на сервер
$('#callback').trigger('reset');
$("#form-send").on("click",function(){
console.log("3");
"use strict";
$("#callback").on("click", function(e){
console.log("333");
e.preventDefault();
$.ajax({
url: 'mail/php/send.php',
type: 'POST',
contentType: false,
processData: false,
data: new FormData(this),
success: function(msg) {
console.log(data);
if (msg == 'ok') {
alert('Сообщение отправлено');
$('#callback').trigger('reset'); // очистка формы
} else {
alert('Ошибка');
}
}
});
});
});
// Файлы phpmailer
require 'phpmailer/PHPMailer.php';
require 'phpmailer/SMTP.php';
require 'phpmailer/Exception.php';
// Переменные, которые отправляет пользователь
$name = $_POST['name'];
$phone = $_POST['phone'];
$callback_comment = $_POST['callback_comment'];
$myfile = $_POST['myfile'];
echo $name;
echo $phone;
echo $callback_comment;
echo $myfile;
$mail = new PHPMailer\PHPMailer\PHPMailer();
try {
$msg = "ok";
$mail->isSMTP();
$mail->CharSet = "UTF-8";
$mail->SMTPAuth = true;
// Настройки вашей почты
$mail->Host = 'smtp.gmail.com'; // SMTP сервера GMAIL
$mail->Username = 'вел логин'; // Логин на почте
$mail->Password = 'вел пароль'; // Пароль на почте
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
$mail->setFrom(' выбрал от кого будет письмо', 'admin'); // Адрес самой почты и имя отправителя
// Получатель письма
$mail->addAddress('выбрал получателя');
// Прикрепление файлов к письму
if (!empty($_FILES['myfile']['name'][0])) {
for ($ct = 0; $ct < count($_FILES['myfile']['tmp_name']); $ct++) {
$uploadfile = tempnam(sys_get_temp_dir(), sha1($_FILES['myfile']['name'][$ct]));
$filename = $_FILES['myfile']['name'][$ct];
if (move_uploaded_file($_FILES['myfile']['tmp_name'][$ct], $uploadfile)) {
$mail->addAttachment($uploadfile, $filename);
} else {
$msg .= 'Не удалось прикрепить файл ' . $uploadfile;
}
}
}
// -----------------------
// Само письмо
// -----------------------
$mail->isHTML(true);
$mail->Subject = 'Заголовок письма';
$mail->Body = "<b>Имя:</b> $name <br>
<b>Почта:</b> $phone<br><br>
<b>Сообщение:</b><br>$callback_comment";
// Проверяем отправилось ли сообщение
if ($phone->send()) {
echo "$msg";
} else {
echo "Сообщение не было отправлено. Неверно указаны настройки вашего тф";
}
} catch (Exception $e) {
echo "Сообщение не было отправлено. Причина ошибки: {$phone->ErrorInfo}";
}
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question