код send.php
<?php
require 'phpmailer/PHPMailer.php';
require 'phpmailer/SMTP.php';
require 'phpmailer/Exception.php';
// Переменные, которые отправляет пользователь
$name = $_POST['name'];
$email = $_POST['email'];
$text = $_POST['text'];
$mail = new PHPMailer\PHPMailer\PHPMailer();
try {
$msg = "ok";
$mail->isSMTP();
$mail->CharSet = "UTF-8";
$mail->SMTPAuth = true;
// Настройки вашей почты
$mail->Host = 'smtp.yandex.ru'; // SMTP сервера GMAIL
$mail->Username = 'login@yandex.ru'; // Логин на почте
$mail->Password = 'password065123451'; // Пароль на почте
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
$mail->setFrom('bmk-site@yandex.ru', 'YOUR NAME'); // Адрес самой почты и имя отправителя
// Получатель письма
$mail->addAddress('ilya.malishckin@yandex.ru');
$mail->addAddress('youremail@gmail.com'); // Ещё один, если нужен
// Прикрипление файлов к письму
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> $email<br><br>
<b>Сообщение:</b><br>$text";
// Проверяем отравленность сообщения
if ($mail->send()) {
echo "$msg";
} else {
echo "Сообщение не было отправлено. Неверно указаны настройки вашей почты";
}
} catch (Exception $e) {
echo "Сообщение не было отправлено. Причина ошибки: {$mail->ErrorInfo}";
}
код формы
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Пример работы PHPMAILER</title>
</head>
<body>
<form enctype="multipart/form-data" method="post" id="form">
<p>Имя</p>
<input placeholder="Представьтесь" name="name" type="text" >
<p>Email</p>
<input placeholder="Укажите почту" name="email" type="text" >
<p>Сообщение</p>
<textarea name="text"></textarea>
<p>Прикрепить файлы</p>
<input type="file" name="myfile[]" multiple id="myfile">
<p><input value="Отправить" type="submit"></p>
</form>
</body>
</html>
<script src="jquery-3.4.0.min.js"></script>
<script>
// Отправка данных на сервер
$('#form').trigger('reset');
$(function() {
'use strict';
$('#form').on('submit', function(e) {
e.preventDefault();
$.ajax({
url: 'send.php',
type: 'POST',
contentType: false,
processData: false,
data: new FormData(this),
success: function(msg) {
console.log(msg);
if (msg == 'ok') {
alert('Сообщение отправлено');
$('#form').trigger('reset'); // очистка формы
} else {
alert('Ошибка');
}
}
});
});
});
</script>
на хосте выдает просто слово "ошибка" , через локальный сервер письма на почту приходят.