我經常聽到這樣一個問題:"我有一個從網站發來的合同。我如何給通過表單發送的電子郵件增加一個附件呢?"首先我要說的是要做到這個沒有什麼簡單的辦法。你要很好的理解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: <[email protected]>
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