HTML
обязятелно
enctype="multipart/form-data"
<form method="post" action="attach.php" enctype="multipart/form-data">
<input type="text" name="email"/><br>
<input type="file" name="attachment"/><br>
<input type="submit" name="send">
</form>
Обрати внимание, только некоторые из вещей
$content = chunk_split(base64_encode(file_get_contents($file)));
$headers .= "Content-Type: multipart/mixed; boundary=\"".$uid."\";\r\n\r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; filename=\"".$file_name."\"\r\n\r\n";
$headers .= "Content-type:text/plain; charset=iso-8859-1\r\n";
$headers .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
а теперь php
attach.php<?php
if (isset($_POST['send'])) {
if (!empty($_FILES['attachment']['name'])) {
// некоторые переменные
$file_name = $_FILES['attachment']['name'];
$temp_name = $_FILES['attachment']['tmp_name'];
$file_type = $_FILES['attachment']['type'];
// получить расширение файла
$base = basename($file_name);
$extension = substr($base, strlen($base)-4,strlen($base));
// только это типы файлов будет разрешено
$allowed_extensions = array(".doc","docx",".pdf",".zip",".png");
// убедитесь, что этот тип файла допускается
if (in_array($extension, $allowed_extensions)) {
// основы
$from = $_POST['email'];
$to = "some@mail.ru";
$subject = "Subject";
$message = "message";
} else {
//вещи, которые нужно
$file = $temp_name;
$content = chunk_split(base64_encode(file_get_contents($file)));
$uid = md5(uniqid(time()));
//
$headers = "From: ". $from."\r\n";
$headers = "MIME-Version: 1.0" . "\r\n";
// Заявив, у нас есть несколько видов электронной почте (т.е. обычный текст и вложения)
$headers .= "Content-type: multipart/mixed;boundary=\"".$uid."\"\r\n\r\n";
$headers .= "This is a multi-part message in MIME format.\r\n":
// Обычная текстовая часть
$headers .= "--".$uid."\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$headers .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$headers .= $message."\r\n\r\n";
// Влажение файла
$headers .= "--".$uid."\r\n";
$headers .= "Content-Type:". $file_type.":name=\"".$file_name."\"\r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Description: attachment;filename=\"".$file_name."\r\n";
$headers .= $content."\r\n\r\n";
// Oтправить по почте (сообщение не здесь, а в заголовке в нескольких части
if (mail($to, $subject, "",$headers)) {
echo "Спасибо за заявку! Скоро мы с вами свяжемся";
} else {
echo "Неполучилось";
}
} else {
echo "тип файла не имеет";
}
} else {
echo "файл не прикреплен";
}
}
?>