JSFiddle - React, Tailwind, and code Playground
HTML
<form action="js/send.php" method="post" enctype="multipart/form-data">
<label for="name">
<p><span>Ваше имя:</span> <br />
<input type="text" id="name" placeholder="Анна" name="name">
</label>
<label for="phone">
<p><span>Ваш телефон:</span> <br />
<input type="text" id="phone" name="phone" placeholder="8 (999) 999-99-99" id="phone">
</label>
<label for="email">
<p><span>Ваш e-mail:</span> <br />
<input type="text" id="email" placeholder="index@mail.ru" name="email">
</label>
<div class="field_wrap">
<input id="image_file" id="img" type="file" name="flie[]" class="hidden">
<label for="image_file" class="file_label_block">
<span class="file_label_text">Прикрепите файл <br /> изображения</span>
</label>
</div>
<button type="submit" id="submit">Отправить</button>
</form>
JavaScript
<?php
if (isset ($_POST['email'])) {
$to = "kflnqfn@yandex.ru"; // поменять на свой электронный адрес
$from = $_POST['email'];
$subject = "Заполнена контактная форма с ".$_SERVER['HTTP_REFERER'];
$message = "Имя: ".$_POST['name']."\nEmail: ".$from."\nIP: ".$_SERVER['REMOTE_ADDR']."\nТелефон: ".$_POST['phone'];
$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";
for($i=0;$i<count($_FILES['file']['name']);$i++) {
if(is_uploaded_file($_FILES['file']['tmp_name'][$i])) {
$attachment = chunk_split(base64_encode(file_get_contents($_FILES['fileFF']['tmp_name'][$i])));
$filename = $_FILES['file']['name'][$i];
$filetype = $_FILES['file']['type'][$i];
$filesize += $_FILES['file']['size'][$i];
$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['name'].', Ваше сообщение получено, спасибо!';
} else {
echo 'Извините, письмо не отправлено. Размер всех файлов превышает 10 МБ.';
}
}
?>