ОТПРАВКА ФАЙЛА НА ПОЧТУ PHP AJAX
Отправка файла на почту при помощи PHP и AJAX может осуществляться посредством использования библиотеки PHPMailer и технологии AJAX для обеспечения более плавной загрузки файла на сервер. Для начала необходимо создать HTML-форму для выбора файла и ввода email-адреса получателя:
<form id="uploadForm">
<input type="file" name="file" id="file" />
<input type="email" name="email" id="email" placeholder="Email" />
<input type="submit" name="submit" id="submit" value="Отправить" />
</form>
Затем необходимо написать PHP-скрипт, который будет выполнять отправку файла по выбранному адресу электронной почты. Для этого используем библиотеку PHPMailer:
<?php
require 'phpmailer/PHPMailerAutoload.php';
$mail = new PHPMailer();
$mail->isSMTP();
$mail->SMTPDebug = 0;
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->Username = 'your_email@gmail.com';
$mail->Password = 'your_password';
$mail->setFrom('your_email@gmail.com');
$mail->addAddress($_POST['email']);
$mail->Subject = 'Отправка файла';
$mail->Body = 'Вам отправлен файл';
$mail->addAttachment($_FILES['file']['tmp_name'], $_FILES['file']['name']);
if(!$mail->send()) {
echo 'Ошибка отправки файла: ' . $mail->ErrorInfo;
} else {
echo 'Файл был успешно отправлен на почту';
}
?>
Наконец, добавляем JS-код для AJAX-запроса на сервер для отправки файла:
document.getElementById('uploadForm').addEventListener('submit', function(event) {
event.preventDefault();
var form = document.getElementById('uploadForm');
var formData = new FormData(form);
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (this.readyState === 4 && this.status === 200) {
alert(this.responseText);
}
};
xhr.open('POST', 'sendfile.php', true);
xhr.send(formData);
});
Как отправлять файлы с сайта на почту - SMTP скрипт
Отправляем HTML формы через AJAX на JS/PHP
Отправка данных без перезагрузки страницы. PHP + Ajax (jQuery)
jQuery Form Validation before Ajax submit - Laravel
Отправка формы на почту. Верстка валидация и отправка формы без перезагрузки. AJAX. PHPMailer.
Мультизагрузка файлов на php через ajax
Готовая форма отправки письма без перезагрузки страницы PHP AJAX
Как отправлять заявку с сайта на почту? SMTP скрипт отправки писем
Как отправить файл с сайта на почту? Форма с вложением PHP JavaScript
Как отправить POST запрос с помощью AJAX и получить ответ PHP