Comment joindre plusieurs fichiers à un e-mail en PHP
En PHP, vous pouvez joindre plusieurs fichiers à un e-mail et les envoyer simultanément. Ceci est utile pour partager des documents volumineux ou importants.
Format MIME multipart
Pour joindre plusieurs fichiers à un e-mail, vous devez utiliser le format MIME multipart. MIME (MultiPurpose Internet Mail Extensions) vous permet d'envoyer différents types de données dans un seul message électronique.
Code PHP pour plusieurs pièces jointes
Voici un exemple de code PHP qui montre comment joindre plusieurs fichiers à un e-mail :
<code class="php">if ($_POST) { // Get the file names $files = $_FILES['csv_file']['name']; // Email fields $to = "[email protected]"; $from = "[email protected]"; $subject = "My subject"; $message = "My message"; $headers = "From: $from"; // Boundary $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; // Headers for attachment $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; // Multipart boundary $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"; $message .= "--{$mime_boundary}\n"; // Preparing attachments foreach ($files as $file) { $file_data = file_get_contents($file); $file_data = chunk_split(base64_encode($file_data)); $message .= "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$file\"\n" . "Content-Disposition: attachment;\n" . " filename=\"$file\"\n" . "Content-Transfer-Encoding: base64\n\n" . $file_data . "\n\n"; $message .= "--{$mime_boundary}\n"; } // Send the email $ok = @mail($to, $subject, $message, $headers); if ($ok) { echo "<p>mail sent to $to!</p>"; } else { echo "<p>mail could not be sent!</p>"; } } ?></code>
Formulaire HTML pour le téléchargement de fichiers
Ce code peut être utilisé conjointement avec un formulaire HTML qui permet aux utilisateurs de sélectionner plusieurs fichiers :
<code class="html"><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></code>
L'attribut enctype="multipart/form-data" doit être ajouté au formulaire pour permettre le téléchargement de fichiers.
En implémentant ces méthodes, vous pouvez Joignez facilement plusieurs fichiers à un e-mail et envoyez-les à partir d'un script PHP.
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!