我經常聽到這樣一個問題:“我有一個從網站發來的合同,我如何給通過表單發送的電子郵件增加一個附件呢?”
首先我要說的是要做到這個沒有什么簡單的辦法。你要很好的理解PHP或其它的服務器端的腳本語言。當然你還要一個真正支持PHP的網站的賬號。如果滿足了這個前提,在你讀完了本章后就可以用PHP發送帶附件的電子郵件了。
1.附件是如何工作的
如果你曾經在PHP的手冊中搜索過“附件”函數,那么結果可能是什么都沒有(至少在我寫本文的時間還沒有),后來你就要花很多時間來了解這方面的知識。
你也許會想當你給某個人發送一封帶附件的電子郵件時,附件是和郵件一起放到收件人的信箱里的(比如,如果你給他/她發了一個PNG的圖片文件,他/她的信箱里會包含一個txt文件(電子郵件)和一個.png文件(附件).
但這不是它的工作原理,當你加入一個附件時,你的郵件程序把附件轉換成純文本文件,并在你寫的內容(實際的電子郵件)后面插入這個文本塊。這個,當你把所有的東西發出來后,收件人的信箱里只有一個純文本文件——一個同時包含附件和實際電子郵件內容的文件。
下面是一個帶附件(一個HTML文件)電子郵件的例子。
- Return-Path:
- Date: Mon, 22 May 2000 19:17:29 +0000
- From: Someone
- To: Person
- Message-id: <83729KI93LI9214@example.com>
- Content-type: multipart/mixed; boundary="396d983d6b89a"
- Subject: Here's the subject
- --396d983d6b89a
- Content-type: text/plain; charset=iso-8859-1
- Content-transfer-encoding: 8bit
- This is the body of the email.
- --396d983d6b89a
- Content-type: text/html; name=attachment.html
- Content-disposition: inline; filename=attachment.html
- Content-transfer-encoding: 8bit
- This is the attached HTML file
- --396d983d6b89a--
前面的7行是郵件的頭,其中值得注意的是Content-type頭部分,這個頭告訴郵件程序電子郵件是由一個以上的部分組成的,不含附件的郵件只有一個部分:消息本身。帶附件的電子通常至少由兩部分組成:消息和附件。這樣,帶兩個附件的郵件由三部分組成:消息,第一個附件和第二個附件。
帶附件的電子郵件的不同部分之間用分界線來分隔,分界線在Content--type頭中定義。郵件的每個新部分以兩個連字號(--)和分界線開始。
新聞熱點
疑難解答