Maison > développement back-end > tutoriel php > Comment envoyer plusieurs pièces jointes dans des e-mails à l'aide de PHP ?

Comment envoyer plusieurs pièces jointes dans des e-mails à l'aide de PHP ?

Susan Sarandon
Libérer: 2024-11-02 18:21:02
original
389 Les gens l'ont consulté

How to Send Multiple File Attachments in Emails Using PHP?

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal