首頁 >後端開發 >php教程 >如何在 PHP 中將多個文件附加到電子郵件?

如何在 PHP 中將多個文件附加到電子郵件?

Patricia Arquette
Patricia Arquette原創
2024-11-03 03:35:31743瀏覽

How to Attach Multiple Files to Emails in PHP?

在PHP 中將多個文件附加到電子郵件

發送電子郵件時,通常需要包含附件,無論是單一文件還是多個文件。您提供的用於發送單一附件的程式碼可以修改為容納多個文件。

了解 MIME 邊界

要發送多個文件,您必須使用MIME 邊界,分隔電子郵件的不同部分(文字、附件)。使用隨機字串產生唯一邊界,確保電子郵件閱讀器可以正確區分各個部分。

多部分訊息準備

準備多部分訊息,以標準文字訊息內容開頭,並指定 MIME 版本和節邊界。

附件處理

對於要附加的每個文件,您需要閱讀使用 fopen() 讀取文件內容並使用 base64_encode() 對其進行編碼。附件部分標題包括文件類型、名稱和傳輸編碼等資訊。

組裝電子郵件

透過組合文字內容組裝最終的電子郵件訊息和附件部分,每個部分均由 MIME 邊界分隔。

範例實作

以下程式碼示範如何使用PHP 將多個檔案附加到電子郵件:

<code class="php">// Prepare the email fields
$to = "recipient@example.com";
$from = "sender@example.com";
$subject = "Email with Attachments";
$message = "This email contains multiple attachments.";
$headers = "From: $from";

// Generate a random boundary
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

// Prepare the 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 attachments
$files = ["file1.pdf", "file2.rar"];
foreach ($files as $file) {
    $file_content = file_get_contents($file);
    $encoded_content = chunk_split(base64_encode($file_content));

    $message .= "--{$mime_boundary}\n" .
        "Content-Type: application/octet-stream;\n" .
        " name=\"$file\"\n" .
        "Content-Disposition: attachment;\n" .
        " filename=\"$file\"\n" .
        "Content-Transfer-Encoding: base64\n\n" .
        $encoded_content . "\n\n";
}

// Complete the message
$message .= "--{$mime_boundary}--\n";

// Headers for attachment
$headers .= "\nMIME-Version: 1.0\n" .
    "Content-Type: multipart/mixed;\n" .
    " boundary=\"{$mime_boundary}\"";

// Send the email
if (mail($to, $subject, $message, $headers)) {
    echo "Email sent with attachments.";
} else {
    echo "Failed to send email.";
}</code>

結論

透過在電子郵件中使用多個MIME 邊界,可以使用PHP 在一封電子郵件中附加和發送多個文件。此程式碼將允許您一次共享各種文件,從而幫助您簡化電子郵件通訊。

以上是如何在 PHP 中將多個文件附加到電子郵件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn