Joindre et envoyer plusieurs fichiers par e-mail en PHP
La tâche initiale consistait à modifier le code qui ne pouvait envoyer qu'une seule pièce jointe pour en envoyer deux ou plusieurs fichiers. Ce code révisé répond à cette exigence en permettant l'envoi de plusieurs pièces jointes dans un e-mail :
<code class="php"><form action="#" method="POST" enctype="multipart/form-data"> <input type="file" name="csv_file[]" /><br> <input type="file" name="csv_file[]" /><br> <input type="file" name="csv_file[]" /><br> <input type="submit" name="upload" value="Upload" /><br> </form> <?php if($_POST) { // Create arrays for file information $ftype = $_FILES['csv_file']['type']; $fname = $_FILES['csv_file']['name']; // Define files to be attached $files = $fname; // Email fields $to = "recipient@example.com"; $from = "sender@example.com"; $subject = "Attachments"; $message = "Email with attached files"; $headers = "From: $from"; // Set MIME boundary $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; // Create multipart header $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; // Build multipart message $message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n"; // Prepare each attachment foreach ($files as $key => $value) { $file = fopen($value, "rb"); $data = fread($file, filesize($value)); fclose($file); $data = chunk_split(base64_encode($data)); $message .= "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$fname[$key]\"\n" . "Content-Disposition: attachment;\n" . " filename=\"$fname[$key]\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n"; $message .= "--{$mime_boundary}\n"; } // Send email $ok = @mail($to, $subject, $message, $headers); if ($ok) { echo "<p>Email sent to $to!</p>"; } else { echo "<p>Email could not be sent!</p>"; } } ?></code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!