一個發送e-mail的腳本也許是你能夠在web 站點上找到的最普通的腳本之一了,雖然它很簡單,一個郵件腳本有時會令程序員非常沮喪.php中有一個叫做mail()的函數,它只需要知道接收方的地址和信件主體就可以發送郵件,但是要讓mail()按你的意思運行你還需要解決一些棘手的問題.
要使mail()能夠運行,你必須有一個smtp服務器以便php能夠連接上去.不管這個服務器對郵件程序多么重要,大多數人對它如何運轉沒有一星半點的概念.在本教程中,我們將揭示smtp的秘密并解決一些使用php發送郵件的常見問題.而本文中的另一些主題將包括循環遍歷一個地址列表的方法以及同時以文本和html格式向接收者發送一個郵件的方法.
smtp是簡單郵件傳輸協議(simple mail transfer protocol)的縮寫,而一個smtp服務器是一臺運行這種協議并發出郵件的計算機.運行這種協議實際上指的是運行諸如sendmail和qmail的程序--如果你使用的是一臺非windows計算機的話.在windows平臺上,作為windows nt service pack一部分或是內建于windows 2000內部的smtp服務程序就是典型的這種程序.
我并不是說smtp軟件包就只有那些,但是它們是最普通的.如果你的web站點使用了互聯網服務提供者的主機軟件包(internet service provider's virtual hosting package)的一部分,那么smtp服務程序就應該已經在這臺計算機上安裝了.如果你是一臺位于isp或是室內的計算機的系統管理員,那么你很有可能已經在這臺計算機上安裝了某種smtp軟件,用來處理從web服務器發送郵件的過程.
但是,如果你是一個個人用戶并只有一個開發用的web服務程序運行在你的個人電腦上,你可能沒有在自己的機器上運行smtp軟件.下面是一個非常簡單但是準確的拇指定律:如果你是一個windows用戶而從沒有看見smtp服務器這樣的字眼,那么你就沒有運行這個程序.如果你確實沒有,那么你有兩種選擇:安裝,配置,和維護一個smtp服務程序(如果你不知道那是怎么一回事的話就不推薦你使用這種方法)或是使用一個現存的smtp服務器.