PHP發郵件可以用其自帶mail()函數,但是這個函數很不好使,需要配置郵件服務器,並且不支持smtp驗證,在很多場合無法正常的工作. 找了個代碼發郵件,但總是出錯,我在這裡用PEAR的Mail類,使用smtp發郵件.
首先安裝,我推陳用最新版的PHP5,因為我用PHP4出現了很多問題,大多是因為那些封裝好的類版本太高,與PHP4不兼容的原故吧.
安裝方法:
1.在php目錄中雙擊go-pear.bat。
2.按照提示輸入一些設置信息,主要是問直接訪問外網,還是用代理,若無代理服務器則直接回車,我是直接按回車.
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即可。
現在PEAR已經安好了,我們要用到的類放在php目錄下的pear文件夾下,但是現在沒有多少可用的類,我們要去網上下載並安裝.
在你的PHP根目錄中可以找到PEAR.bat文件(執行上邊的安裝才會有這個東西),這是管理pear的命令,在CMD中使用,要設置環境變量PATH,或雙擊生成的EV_XXX.REG文件。它的部分命令功能如下:
1、安裝:
從網絡安裝一個pear類庫:
pear install packagename
下載 packages 但不安裝:
pear download packagename
pear download-all
安裝已下載的package:
pear install filename.tgz
2、列表:
目前pear網站上所有可取得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進入PHP目錄,執行pear install mail
如果安裝過程提示某些庫沒有安裝,則繼續安裝這些庫如圖:
這繼續安裝:
出來一些信息,會提示安裝成功,這時pear目錄下多出來一個mail目錄,同時有一個mail.php,這是我們一會要引用的文件.
下邊是我們用來發郵件的代碼:
<? require_once 'Mail.php'; flush(); $conf['mail'] = array( 'host' => 'mail.nenu.edu.cn', //smtp服務器地址,可以用ip地址或者域名 'auth' => true, //true表示smtp服務器需要驗證,false代碼不需要 'username' => 'guanhf844', //用戶名 'password' => '你的密碼' //密碼 ); $headers['From'] = '[email protected]'; //發信地址 $headers['To'] = '[email protected]'; //收信地址 $headers['Subject'] = 'test mail send by php'; //郵件標題 $mail_object = &Mail::factory('smtp', $conf['mail']); $body = '<<< MSG hello world!!! MSG'; //郵件正文 $mail_res = $mail_object->send($headers['To'], $headers, $body); //發送 if( PEAR::isError($mail_res) ){ //檢測錯誤 die($mail_res->getMessage()); } echo 'Send finished.'; ?>
經測試發送成功,速度挺快的,別的郵箱沒有測試。
以上就是PHP使用pear實現mail發送功能的全部代碼,希望對大家的學習有所幫助。