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
401 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!

sumber:php.cn
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