Heim > Artikel > Backend-Entwicklung > Wie sende ich mit PHP mehrere Dateien als Anhänge in einer E-Mail?
Anhängen und Senden mehrerer Dateien per E-Mail in PHP
Die ursprüngliche Aufgabe bestand darin, Code zu ändern, der nur einen Dateianhang senden konnte, um zwei zu senden oder mehr Dateien. Dieser überarbeitete Code erfüllt diese Anforderung, indem er das Versenden mehrerer Dateianhänge in einer E-Mail ermöglicht:
<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>
Das obige ist der detaillierte Inhalt vonWie sende ich mit PHP mehrere Dateien als Anhänge in einer E-Mail?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!