PHP使用pear實現(xiàn)mail發(fā)送功能 windows環(huán)境下配置pear
PHP發(fā)郵件可以用其自帶mail()函數(shù),但是這個函數(shù)很不好使,需要配置郵件服務(wù)器,并且不支持smtp驗證,在很多場合無法正常的工作. 找了個代碼發(fā)郵件,但總是出錯,我在這里用PEAR的Mail類,使用smtp發(fā)郵件.
首先安裝,我推陳用最新版的PHP5,因為我用PHP4出現(xiàn)了很多問題,大多是因為那些封裝好的類版本太高,與PHP4不兼容的原故吧.
安裝方法:
1.在php目錄中雙擊go-pear.bat。
2.按照提示輸入一些設(shè)置信息,主要是問直接訪問外網(wǎng),還是用代理,若無代理服務(wù)器則直接回車,我是直接按回車.
3.然后會提示一些包和PHP綁定,選擇Y 。
4.然后安裝基本包和提示安裝成功,就這么簡單。
5.打開windows目錄下的php.ini文件,然后查找到如下的地方:
; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"
把最后一行的注釋去掉,然后把后面路徑改成你的PEAR路徑,例如:
include_path = ".;c:\php\pear\"
保存PHP.INI,然后重新啟動APACHE即可。
現(xiàn)在PEAR已經(jīng)安好了,我們要用到的類放在php目錄下的pear文件夾下,但是現(xiàn)在沒有多少可用的類,我們要去網(wǎng)上下載并安裝.
在你的PHP根目錄中可以找到PEAR.bat文件(執(zhí)行上邊的安裝才會有這個東西),這是管理pear的命令,在CMD中使用,要設(shè)置環(huán)境變量PATH,或雙擊生成的EV_XXX.REG文件。它的部分命令功能如下:
1、安裝:
從網(wǎng)絡(luò)安裝一個pear類庫:
pear install packagename
下載 packages 但不安裝:
pear download packagename
pear download-all
安裝已下載的package:
pear install filename.tgz
2、列表:
目前pear網(wǎng)站上所有可取得pear類庫列表:
pear remote-list
列出已安裝package:
pear list
列出可以升級的package:
pear list-upgrades
3、更新(升級):
更新package:
pear upgrade packagename
pear upgrade-all
4、移除:
刪除已安裝的package:
pear uninstall packagename
我們從cmd進(jìn)入PHP目錄,執(zhí)行pear install mail
如果安裝過程提示某些庫沒有安裝,則繼續(xù)安裝這些庫如圖:
這繼續(xù)安裝:
出來一些信息,會提示安裝成功,這時pear目錄下多出來一個mail目錄,同時有一個mail.php,這是我們一會要引用的文件.
下邊是我們用來發(fā)郵件的代碼:
<? require_once 'Mail.php'; flush(); $conf['mail'] = array( 'host' => 'mail.nenu.edu.cn', //smtp服務(wù)器地址,可以用ip地址或者域名 'auth' => true, //true表示smtp服務(wù)器需要驗證,false代碼不需要 'username' => 'guanhf844', //用戶名 'password' => '你的密碼' //密碼 ); $headers['From'] = 'guanhf844@nenu.edu.cn'; //發(fā)信地址 $headers['To'] = 'chf007server@163.com'; //收信地址 $headers['Subject'] = 'test mail send by php'; //郵件標(biāo)題 $mail_object = &Mail::factory('smtp', $conf['mail']); $body = '<<< MSG hello world!!! MSG'; //郵件正文 $mail_res = $mail_object->send($headers['To'], $headers, $body); //發(fā)送 if( PEAR::isError($mail_res) ){ //檢測錯誤 die($mail_res->getMessage()); } echo 'Send finished.'; ?>
經(jīng)測試發(fā)送成功,速度挺快的,別的郵箱沒有測試。
以上就是PHP使用pear實現(xiàn)mail發(fā)送功能的全部代碼,希望對大家的學(xué)習(xí)有所幫助。
相關(guān)文章
PHP error_log()將錯誤信息寫入一個文件(定義和用法)
PHP error_log()定義和用法,帶有二個簡單小例子加函數(shù)解釋2013-10-10