Heim > Backend-Entwicklung > PHP-Tutorial > Wie versende ich mit PHP mehrere Dateianhänge in E-Mails?

Wie versende ich mit PHP mehrere Dateianhänge in E-Mails?

Susan Sarandon
Freigeben: 2024-11-02 18:21:02
Original
393 Leute haben es durchsucht

How to Send Multiple File Attachments in Emails Using PHP?

So hängen Sie mehrere Dateien an eine E-Mail in PHP an

In PHP können Sie mehrere Dateien an eine E-Mail anhängen und diese gleichzeitig senden. Dies ist nützlich, um große oder wichtige Dokumente zu teilen.

Multipart-MIME-Format

Um mehrere Dateien an eine E-Mail anzuhängen, müssen Sie das Multipart-MIME-Format verwenden. Mit MIME (Multipurpose Internet Mail Extensions) können Sie verschiedene Datentypen in einer einzigen E-Mail-Nachricht senden.

PHP-Code für mehrere Dateianhänge

Hier ist ein PHP-Beispielcode das zeigt, wie man mehrere Dateien an eine E-Mail anhängt:

<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>
Nach dem Login kopieren

HTML-Formular zum Hochladen von Dateien

Dieser Code kann in Verbindung mit einem HTML-Formular verwendet werden, das dies ermöglicht Benutzer können mehrere Dateien auswählen:

<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>
Nach dem Login kopieren

Das enctype="multipart/form-data"-Attribut muss dem Formular hinzugefügt werden, um das Hochladen von Dateien zu ermöglichen.

Durch die Implementierung dieser Methoden können Sie dies tun Hängen Sie ganz einfach mehrere Dateien an eine E-Mail an und senden Sie sie über ein PHP-Skript.

Das obige ist der detaillierte Inhalt vonWie versende ich mit PHP mehrere Dateianhänge in E-Mails?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage