Как исправить ошибку в форме обратной свзяи с прикреплением файла?

Здравствуйте, есть форма обратной связи на сайте все работает хорошо, кроме прикрепления файла т.е. вместо файла на почту приходит, какая-то кодировка, видимо всего файла.
<?php
if (isset($_POST['name'])) {$name = $_POST['name']; if ($name == '') {unset($name);}}
if (isset($_POST['email'])) {$email = $_POST['email']; if ($email == '') {unset($email);}}
if (isset($_POST['sub'])) {$sub = $_POST['sub']; if ($sub == '') {unset($sub);}}
if (isset($_POST['body'])) {$body = $_POST['body']; if ($body == '') {unset($body);}}
 
if (isset($name) && isset($email) && isset($sub) && isset($body)){

$boundary = md5(date('r', time()));
$filesize = '';
$address = "mail@gmail.com";
$sub1 ="Отправка письма с формы обратной связи';
$mes = "Имя: $name \nE-mail: $email \nТелефон: $sub \nКомментарий: $body";
  $mes="
Content-Type: multipart/mixed; boundary=\"$boundary\"

--$boundary
Content-Type: text/plain; charset=\"utf-8\"
Content-Transfer-Encoding: 7bit

$mes";
  for($i=0;$i<count($_FILES['fileFF']['name']);$i++) {
      if(is_uploaded_file($_FILES['fileFF']['tmp_name'][$i])) {
         $attachment = chunk_split(base64_encode(file_get_contents($_FILES['fileFF']['tmp_name'][$i])));
         $filename = $_FILES['fileFF']['name'][$i];
         $filetype = $_FILES['fileFF']['type'][$i];
         $filesize .= $_FILES['fileFF']['size'][$i];
         $mes.="

--$boundary
Content-Type: \"$filetype\"; name=\"$filename\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"$filename\"

$attachment";
     }
   }
   $mes.="
--$boundary--";
$send = mail ($address,$sub1,$mes,"Content-type:text/plain; charset = UTF-8\r\nFrom:$email");
if ($send == 'true')
{echo "Через несколько секунд вас перенаправит на главную страницу сайта <a href='http://arttou.me/'>arttou.me</a>";}
else {echo "!";}
 
}
else
{
echo "Вы что-то ввели не верно либо заполнили не все поля пожалуйста вернитесь и повторите попытку";
}
?>
  • Вопрос задан
  • 2322 просмотра
Решения вопроса 1
Вы неверно формируете тело multipart-письма. Либо читайте RFC, либо возьмите готовую библиотеку отправки писем, вроде phpMailer и не мучайтесь.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы