如何用PHP發電子郵件(2)
來源:互聯網
上載者:User
mail([接收方], [主題], [郵件主體], [頭資訊]);
你只需要簡單的用列表中的下一個名字來替換[接收方].假設你已經有了一個電子郵件地址的數組:
$addresses = array("me@mycompany.com", "you@yourcompany.com", "someone@otherplace.com");
你所需要做的就是迴圈遍曆這個數組,取得新地址而後發送這個郵件.
如果你在資料庫中擁有一個電子郵件地址的列表,同樣的原則也是適用的:迴圈遍曆它們.
你已經懂得要領了.顯然,同樣的概念對你特定的資料庫類型和表結構來說也是適用的,雖然代碼會需要做一些改動.
人們在迴圈遍曆一個地址清單的時候似乎都忽視了一點:如果你有多於50個地址要處理,你的指令碼在完成以前很可能逾時,因為PHP對每一個指令碼的運行有一個預設為30秒的時間限制.你可以修改這個時間限制但是這樣做的時候要小心.要把這種修改限定在特定的指令碼上,比方說遍曆一個地址清單發送郵件的指令碼.否則,你可能親手將伺服器的線程超載,然後你的電腦將崩潰,從此萬劫不複.
要在指令碼中設定時間限制,你可以使用set_time_limit()函數.你可以設定時間限制,比如說60秒(set_time_limit(60)),或者你還可以讓它一直運行直道它完成(set_time_limit(0)).
將這段代碼加到你的指令碼裡,你的郵件地址遍曆迴圈會很愉快的繼續工作,直到郵件被發送給了列表中所有的地址.
發送HTML格式的電子郵件也是一種看起來難,做起來容易的事情.一但你學會了如何做這件事,你可能會因為自己曾經認為它很難而踢自己一腳.
我們需要對我們已經編寫的郵件指令碼做兩個修改:
你的郵件應該是HTML格式的.
你必須添加content-type頭資訊.
這就是所有要做的事情.擁有一個能閱讀HTML格式電子郵件用戶端程式的接收方將看見他們的郵件以大的,粗體格式顯示的信件.如果你發送的HTML格式郵件包括image置標,你一定要記住在src屬性中使用完整的URL,例如: <img src="yun_qi_img/image.gif">.
你還應該記住不是每一個人都能閱讀HTML格式的電子郵件而且那些無法閱讀這種格式的人只能看見HTML代碼本身.這是另人討厭的,所以最好三思而行.
結論
你可以用PHP以任何途徑,方法或是可以想象到的任何形式來發送郵件.這個教程只是提供了基本的知識:配置你的伺服器並發送簡單的郵件.你還可以將附件和你用mail()函數產生的電子郵件一道發送,修改一大堆不同的頭資訊,還有做任何電子郵件用戶端程式和郵件清單發送程式能夠做的事情.