2016-03-14 156 views
0

我在我的網站目錄中有一個文檔,當點擊提交按鈕時,我想將其附加到電子郵件中,但有問題讓我開始工作我不太明白如何我會做這個沒有一個錯誤。這是我迄今爲止所擁有的。如何將文檔附加到使用php的電子郵件

$message = "Body Test"; 
$attachment = $myFile=fopen("DATA/EmailDoc.txt","r") or exit("Can't open file!"); fclose($myFile); 
    if (isset($_POST['submit'])){ 
     mail('[email protected]', 'Subject Test', $message); 
    } 
+0

[用PHP Mail()發送附件的可能的重複?](http://stackoverflow.com/questions/12301358/send-attachments-with-php-mail) – morxa

回答

0

使用類PHPMailer,所以你可以將你需要發送和其他項目您需要的文件。

0

使用php的原生mail函數,這是可行的,但非常困難。 你需要自己實現郵件的多部分協議(要求指定附加頭文件並在你的主體中編碼你的附件)。

下面是一個多郵件外觀的例子(從RFC拍攝)

From: Nathaniel Borenstein <[email protected]> 
To: Ned Freed <[email protected]> 
Subject: Sample message 
MIME-Version: 1.0 
Content-type: multipart/mixed; boundary="simple 
boundary" 

This is the preamble. It is to be ignored, though it 
is a handy place for mail composers to include an 
explanatory note to non-MIME compliant readers. 
--simple boundary 

This is implicitly typed plain ASCII text. 
It does NOT end with a linebreak. 
--simple boundary 
Content-type: text/plain; charset=us-ascii 

This is explicitly typed plain ASCII text. 
It DOES end with a linebreak. 

--simple boundary-- 
This is the epilogue. It is also to be ignored. 

這是什麼意思,就是你首先需要一個特定的Content-Type頭傳遞到郵件,其中邊界值指定郵件中所有部分之間的分隔符(通常,您將有兩部分:郵件的實際內容和附件)。

然後在郵件正文中,您需要一個包含所有這些部分的字符串,如上例所示。 如果你想附加二進制文件,事情會變得更加複雜,因爲那時你可能需要對這些二進制圖像進行base64編碼,並將使用的編碼添加到已編碼的零件頭中。總結一下:如果你想要附件,不要使用php mail函數,而應該使用像PHPMailer這樣的工具,它會更高層次,更易於使用。

相關問題