程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 用PHP發電子郵件2

用PHP發電子郵件2

編輯:關於PHP編程

mail()函數是非常簡單的:只有五個參數,而其中的兩個是可選的.這些參數是: 接收方地址 主題 信件內容 其它文件信息頭(可選) SMTP服務程序的其它配置選項(可選) 附加的頭參數控制了諸如CC, BCC, Reply-To之類的郵件功能,或者其它遵循SMTP協議的功能.在這個例子中,我只使用From 和 Reply-To信息頭. 如果你想給我發郵件但你使用的是一個非Windows系統, 程序代碼就應該如下: 如果你使用的是一個基於Windows的SMTP服務,那麼你有可能不需要使用第五個參數,而且在附加的頭信息參數中(也就是第四個參數),你需要將它們分開寫--使用 而不是 .所以,同樣的一個郵件通過基於Windows的SMTP服務發送的代碼如下: 腳本中的echo語句使你的Web浏覽器在腳本運行完成的時候向你顯示一條信息.如果不寫echo語句,你就會得到一個"空文件"的對話框,因為沒有任何輸出能夠發送到浏覽器端. 只要能夠連接到指定的SMTP服務器mail()函數就會返回真值.但是這並不意味著郵件成功的到達了接收方那裡.mail()函數不會等待或報告SMTP服務器發來的成功/錯誤代碼. mail()函數有可能返回假值,然後給你警告"無法連接,在第x行"或是"未知的錯誤,在第x行."如果這兩條信息中的任何一條出現了,你就應該檢查php.ini中的SMTP值.引起這些消息有兩種可能:SMTP服務器癱瘓了,或者PHP無法連接到它.無論是這兩種情況中的哪一種,你的郵件都無法被發送出去. 這個腳本對這些參數使用硬編碼的值.使用一個簡單的HTML表單,你就可以在這些參數中插入一些值並擁有一個良好的反饋表單. 一旦你知道了如何給一個人發送郵件,你可能按奈不住要把同一個郵件發送給許多接收者--就象新聞信件一樣.所有這些牽涉到一個漂亮輕巧的循環來遍歷一個接收者的列表並將郵件發送給他們.mail函數的形式還是相同的: mail([接收方], [主題], [郵件主體], [頭信息]); 你只需要簡單的用列表中的下一個名字來替換[接收方].假設你已經有了一個電子郵件地址的數組: $addresses = array("[email protected]", "[email protected]", "[email protected]"); 你所需要做的就是循環遍歷這個數組,取得新地址而後發送這個郵件. 如果你在數據庫中擁有一個電子郵件地址的列表,同樣的原則也是適用的:循環遍歷它們. 你已經懂得要領了.顯然,同樣的概念對你特定的數據庫類型和表結構來說也是適用的,雖然代碼會需要做一些改動. 人們在循環遍歷一個地址列表的時候似乎都忽視了一點:如果你有多於50個地址要處理,你的腳本在完成以前很可能超時,因為PHP對每一個腳本的運行有一個缺省為30秒的時間限制.你可以修改這個時間限制但是這樣做的時候要小心.要把這種修改限定在特定的腳本上,比方說遍歷一個地址列表發送郵件的腳本.否則,你可能親手將服務器的線程超載,然後你的計算機將崩潰,從此萬劫不復. 要在腳本中設置時間限制,你可以使用set_time_limit()函數.你可以設定時間限制,比如說60秒(set_time_limit(60)),或者你還可以讓它一直運行直道它完成(set_time_limit(0)). 將這段代碼加到你的腳本裡,你的郵件地址遍歷循環會很愉快的繼續工作,直到郵件被發送給了列表中所有的地址. 發送HTML格式的電子郵件也是一種看起來難,做起來容易的事情.一但你學會了如何做這件事,你可能會因為自己曾經認為它很難而踢自己一腳. 我們需要對我們已經編寫的郵件腳本做兩個修改: 你的郵件應該是HTML格式的. 你必須添加content-type頭信息. 這就是所有要做的事情.擁有一個能閱讀HTML格式電子郵件客戶端程序的接收方將看見他們的郵件以大的,粗體格式顯示的信件.如果你發送的HTML格式郵件包括image置標,你一定要記住在src屬性中使用完整的URL,例如: . 你還應該記住不是每一個人都能閱讀HTML格式的電子郵件而且那些無法閱讀這種格式的人只能看見HTML代碼本身.這是另人討厭的,所以最好三思而行. 結論 你可以用PHP以任何途徑,方法或是可以想象到的任何形式來發送郵件.這個教程只是提供了基本的知識:配置你的服務器並發送簡單的郵件.你還可以將附件和你用mail()函數產生的電子郵件一道發送,修改一大堆不同的頭信息,還有做任何電子郵件客戶端程序和郵件列表發送程序能夠做的事情.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved