Я на писал следующий код для отправки формы на эл. почту, но что то отсылается не все. Данные, которые через ajax приходят есть, но в итоге письмо приходит только с файлом прикрепленным. Буду рад любой помощи!
<?php
if (isset ($_POST['email'])) {
$to = "pavel.ps2014@yandex.ru";
$from = "hello@thecbd.ru";
$subject = "Заполнена контактная форма на сайте ".$_SERVER['HTTP_REFERER'];
$message = "Имя пользователя: ".$_POST['yourName']."\nEmail пользователя ".$_POST['email']."\nТелефон пользователя ".$_POST['tel']."\nВакансия: ".$_POST['select']."\n\nАдрес сайта: ".$_SERVER['HTTP_REFERER'];
$boundary = md5(date('r', time()));
$filesize = '';
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From: " . $from . "\r\n";
$headers .= "Reply-To: " . $from . "\r\n";
$headers .= "Content-Type: multipart/mixed; boundary="$boundary"\r\n";
$message="
Content-Type: multipart/mixed; boundary="$boundary"
--$boundary
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
$message";
if(is_uploaded_file($_FILES['fileFF']['tmp_name'])) {
$attachment = chunk_split(base64_encode(file_get_contents($_FILES['fileFF']['tmp_name'])));
$filename = $_FILES['fileFF']['name'];
$filetype = $_FILES['fileFF']['type'];
$filesize = $_FILES['fileFF']['size'];
$message.="
--$boundary
Content-Type: "$filetype"; name="$filename"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="$filename"
$attachment";
}
$message.="
--$boundary--";
if ($filesize < 10000000) { // проверка на общий размер всех файлов. Многие почтовые сервисы не принимают вложения больше 10 МБ
mail($to, $subject, $message, $headers);
echo $_POST['yourName'].', Ваше сообщение отправлено, спасибо!';
} else {
echo 'Извините, письмо не отправлено. Размер всех файлов превышает 10 МБ.';
}
}
?>
$message =и потом снова$message =. Не наводит на мысли? – u_mulder Nov 24 '23 at 11:15