There is a code phpmailer-a which attaches only one file to the letter:

$mailer = "test2015@gmail.com"; $mail = new PHPMailer(); $mail->From = 'test@test.ru'; // ΠΎΡ‚ ΠΊΠΎΠ³ΠΎ //ΠŸΠΎΡ‡Ρ‚Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° $mail->FromName = "ΠšΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹ LP"; // ΠΎΡ‚ ΠΊΠΎΠ³ΠΎ $mail->IsHTML(true); // выставляСм Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ письма HTML $mail->Subject = $subject; // Ρ‚Π΅ΠΌΠ° письма; if ($_FILES['file2']) { $mail->AddAttachment($_FILES['file2']['tmp_name'], $_FILES['file2']['name']); } $mail->Body = '$message'; $mail->AddAddress($mailer); // ΠΊΠΎΠΌΡƒ - адрСс, Имя $mail->Send(); 

the form is multiboot (the ability to select multiple files at once). How to change this php code to attach all the files coming from the form?

    2 answers 2

    It was necessary somehow so chtoli:

     $mailer = "test2015@gmail.com"; $mail = new PHPMailer(); $mail->From = 'test@test.ru'; // ΠΎΡ‚ ΠΊΠΎΠ³ΠΎ //ΠŸΠΎΡ‡Ρ‚Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° $mail->FromName = "ΠšΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹ LP"; // ΠΎΡ‚ ΠΊΠΎΠ³ΠΎ $mail->IsHTML(true); // выставляСм Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ письма HTML $mail->Subject = $subject; // Ρ‚Π΅ΠΌΠ° письма; if (!empty($_FILES['file1']['name'][0])) { foreach ($_FILES['file1']['name'] as $key => $value) { $out_files[] = array("name"=>$_FILES['file1']['name'][$key], "tmp_name" => $_FILES['file1']['tmp_name'][$key]); } $filesSend = true; } else { $filesSend = false; } if ($filesSend) { foreach ($out_files as $k=>$v) { $mail->AddAttachment($out_files[$k]['tmp_name'], $out_files[$k]['name']); } } $mail->Body = '$message'; $mail->AddAddress($mailer); // ΠΊΠΎΠΌΡƒ - адрСс, Имя $mail->Send(); 

    and it at least works.

       if(isset($_FILES['file_1'])) { if($_FILES['file_1']['error'][0] == 0){ $mail->AddAttachment($_FILES['file_1']['tmp_name'], $_FILES['file_1']['name']); } } if(isset($_FILES['file_2'])) { if($_FILES['file_2']['error'][0] == 0){ $mail->AddAttachment($_FILES['file_2']['tmp_name'], $_FILES['file_2']['name']); } } // И Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅... 
      • if not that :) An array of files comes from one input type = file name = "file1 []". - amijin