Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menghantar Berbilang Lampiran Fail dalam E-mel Menggunakan PHP?

Bagaimana untuk Menghantar Berbilang Lampiran Fail dalam E-mel Menggunakan PHP?

Susan Sarandon
Lepaskan: 2024-11-02 18:21:02
asal
435 orang telah melayarinya

How to Send Multiple File Attachments in Emails Using PHP?

Cara Melampirkan Berbilang Fail pada E-mel dalam PHP

Dalam PHP, anda boleh melampirkan berbilang fail pada e-mel dan menghantarnya serentak. Ini berguna untuk berkongsi dokumen yang besar atau penting.

Format MIME Berbilang Bahagian

Untuk melampirkan berbilang fail pada e-mel, anda perlu menggunakan format MIME Berbilang Bahagian. MIME (Sambungan Mel Internet Serbaguna) membolehkan anda menghantar pelbagai jenis data dalam satu mesej e-mel.

Kod PHP untuk Lampiran Berbilang Fail

Berikut ialah contoh kod PHP yang menunjukkan cara melampirkan berbilang fail pada e-mel:

<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>
Salin selepas log masuk

Borang HTML untuk Muat Naik Fail

Kod ini boleh digunakan bersama-sama dengan borang HTML yang membenarkan pengguna untuk memilih berbilang fail:

<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>
Salin selepas log masuk

Atribut enctype="multipart/form-data" mesti ditambahkan pada borang untuk mendayakan muat naik fail.

Dengan melaksanakan kaedah ini, anda boleh lampirkan berbilang fail dengan mudah pada e-mel dan hantarkannya daripada skrip PHP.

Atas ialah kandungan terperinci Bagaimana untuk Menghantar Berbilang Lampiran Fail dalam E-mel Menggunakan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan