Заполните php-форму --> загрузите файл ---> отправьте письмо с вложением

Я знаю, что этот вопрос задавали несколько раз, но я не нашел рабочего ответа.

Как следует из названия, у меня есть php-форма с типом входного файла, при отправке все данные будут отправлены по электронной почте, включая файл в виде вложения, почему я не могу найти рабочий скрипт.

Пожалуйста помоги.

обновление моего ответа

$fileatt  = $_FILES['uploadfile']['tmp_name'];
$fileatt_type = $_FILES['uploadfile']['type'];
$fileatt_name = $_FILES['uploadfile']['name'];


$subject = "Some Subject goes here";
$uploadedfile = $_FILES['uploadfile']['name'];
$headers = "From: " . strip_tags($_POST['email']) . "\r\n";
$headers .= "Reply-To: ". strip_tags($_POST['email']) . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=utf-8\r\n";
$headers .= "Content-Type: application/octet-stream; name=\"".$fileatt_name."\"\r\n";
$headers .=  "Content-Transfer-Encoding: base64\r\n";




    // create a boundary string. It must be unique
      $semi_rand = md5(time());
      $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

      // Add the headers for a file attachment
      $headers .= "\nMIME-Version: 1.0\n" .
                  "Content-Type: multipart/mixed;\n" .
                  " boundary=\"{$mime_boundary}\"";

     if (is_uploaded_file($fileatt)) {
      // Read the file to be attached ('rb' = read binary)
      $file = fopen($fileatt,'rb');
      $data = fread($file,filesize($fileatt));
      fclose($file);

      // Base64 encode the file data
      $data = chunk_split(base64_encode($data));  
     }
//begin of HTML message 
$message ="This is a multi-part message in MIME format.\n\n";
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$message .= "--{$mime_boundary}\n" .
                  "Content-Type: {$fileatt_type};\n" .
                  " name=\"{$fileatt_name}\"\n" .
                  //"Content-Disposition: attachment;\n" .
                  //" filename=\"{$fileatt_name}\"\n" .
                  "Content-Transfer-Encoding: base64\n\n" .
                  $data . "\n\n" .
                  "--{$mime_boundary}--\n";

person Digital fortress    schedule 25.11.2012    source источник
comment
Есть много примеров, просто выполнив поиск здесь в stackoverflow - http://stackoverflow.com/search?q=php+form+file+upload+and+email   -  person Sean    schedule 25.11.2012
comment
Что вы пробовали??   -  person Sean    schedule 25.11.2012
comment
Я попробовал PHP-почту, я получаю искаженное сообщение, без четкого текста и содержания   -  person Digital fortress    schedule 25.11.2012
comment
Stackoverflow работает лучше, когда вы публикуете свой код, который вы попробовали, и тогда мы можем помочь вам, как это исправить.   -  person Sean    schedule 25.11.2012
comment
Я обновил свой вопрос и добавил код. Спасибо   -  person Digital fortress    schedule 26.11.2012


Ответы (1)


Вы не нашли его, потому что плохо искали.
Вот, возьмите это руководство:

-Заполните форму и загрузите файл, используя это: http://www.9lessons.info/2012/04/file-upload-progress-bar-with-jquery.html
— Используйте phpmailer для добавления вложения с помощью этого: вложение phpMailer

person Abhishek Bhatia    schedule 25.11.2012
comment
Спасибо за ваш ответ, но, очевидно, вы плохо прочитали мою проблему. - person Digital fortress; 25.11.2012
comment
@Digitalfortress: я только что изменил свой ответ - person Abhishek Bhatia; 25.11.2012
comment
Я думаю, мне придется использовать phpMailer, почта php не работает, спасибо - person Digital fortress; 25.11.2012
comment
Работает гр8. Проблема может быть в настройках smtp. Что касается прикрепления к почте, то дана ссылка на вопрос. - person Abhishek Bhatia; 25.11.2012