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

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

Patricia Arquette
發布: 2024-11-03 03:35:31
原創
719 人瀏覽過

How to Attach Multiple Files to Emails in PHP?

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

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

了解 MIME 邊界

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

多部分訊息準備

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

附件處理

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

組裝電子郵件

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

範例實作

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

<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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板