Я записываю этот код для отправки нескольких вложений:
$tablica_plikow=$_FILES["file"]; //array of files if(!empty($tablica_plikow['name'])){///if attachment $uid = md5(uniqid(time())); $header = "From: od\n"; $header .= "MIME-Version: 1.0\r\n"; $header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n"; $header .= "--".$uid."\r\n"; $header .= "Content-type:text/html; charset=iso-8859-2\r\n"; $header .= "Content-Transfer-Encoding: 7bit\r\n\r\n"; $header .=win2iso( $_POST['tresc'])."\r\n\r\n\r\n\r\n\r\n\r\n";///message $header .= "--".$uid."\r\n"; for($i=0; $i<count($tablica_plikow['name']); $i++){ if ($tablica_plikow["error"][$i] > 0) { $komunikat = "<img src=\"img_panel/bttn_error.gif\">"."Return Code: " . $tablica_plikow["error"][$i] ; } if (file_exists("zalacznik/" . $tablica_plikow["name"][$i])) { $komunikat = "<img src=\"img_panel/bttn_error.gif\">"."Return Code: " . $tablica_plikow["name"][$i]. " already exists. " ; } else { if(is_uploaded_file($tablica_plikow["tmp_name"][$i])) { move_uploaded_file($tablica_plikow["tmp_name"][$i], "zalacznik/" . $tablica_plikow["name"][$i]); $komunikat = "<img src=\"img_panel/bttn_info.gif\">" . "zalacznik/" . $tablica_plikow["name"][$i]; $target_path="zalacznik/" . $tablica_plikow["name"][$i]; $file = "zalacznik/".$tablica_plikow["name"][$i]; $file_size = filesize($file); $handle = fopen($file, "rb"); $content = fread($handle, $file_size); fclose($handle); $content = chunk_split(base64_encode($content)); $name = basename($file); $header .= "Content-Type: ".$tablica_plikow["type"][$i]." name=\"".$tablica_plikow["name"][$i]."\"\r\n"; // use different content types here $header .= "Content-Transfer-Encoding: base64\n\r".$content."\r\n\r\n";; $header .= "Content-Disposition: attachment; filename=\"".$tablica_plikow["name"][$i]."\"\r\n\r\n"; // $header .= $content."\r\n\r\n"; $header .= "--".$uid."-- \r\n"; } } } if (mail("mail@moj.com", $_POST['tytul'], "", $header)) { $komunikat = "<img src=\"img_panel/bttn_info.gif\">mail send"; } else { $komunikat = "<img src=\"img_panel/bttn_error.gif\">error"; }
Но когда я отправляю электронное письмо с двумя или более вложениями, получаю только один файл. Этот файл является конкатенацией всех вложений. Но первая часть файла – это первое вложение, а другие части – только хэш-файлы других файлов.
Я советую вам использовать стандартную и проверенную библиотеку рассылки, такую как phpMail
Это обсуждается здесь раньше. Пожалуйста, см. Письмо по электронной почте с приложением в php
благодаря
🙂
Я бы использовал библиотеку, например.
Я хотел бы посоветовать вам использовать PHP Mailer .