php mail()函數需要配置才可以發郵件的哦,下面配置方法
如果你沒有使用windows,那麼sendmail_path指令就是你唯一要擔心的東西.如果你正在使用Windows,你就需要看看最後兩個指令.
如果你使用的是Linux或是一個Unix變種,sendmail_path看起來應該象這樣:
sendmail_path = /usr/sbin/sendmail
或者如果你使用Qmail:
sendmail_path = /var/qmail/bin/sendmail
在PHP mail()函數中的這條指令裡,你還可以設定配置參數來指明隊列緩衝選項或是顯示的設定Return-Path頭,如下所示:
sendmail_path = /usr/sbin/sendmail -t -fyou@yourdomain.com
作為一個非Windows使用者,這就是你要做的一切了.如果你使用的是Windows,你有更多的事情要做.你還需要看一看SMTP和sendmail_from的值.不要被sendmail_from指令名字中的sendmail弄迷糊了.雖然你沒有在Windows上使用名叫Sendmail的程式,但那隻是指令的名字.不要被它嚇到了.
在你的phpinfo()顯示的結果裡,看看SMTP和sendmail_from的預設值--它們要麼是空白,要麼包含了胡亂的值.你應該把它們改成有意義的值.
如果你決心在這台電腦上運行一個SMTP服務程式,你在php.ini檔案中的條目就應該如下:
SMTP = localhost
但是,如果你要使用你ISP(在這個例子中是EarthLink)的外發郵件伺服器,那麼php.ini中的郵件看起來應該如下:
SMTP = mail.earthlink.net
你也可以使用IP地址而不是網域名稱,因為電腦不區分這兩種條目.
第二條配置指令是sendmail_from,它應該被設定成From頭中的電子郵件地址.它可以在指令碼裡被修改但是通常作為預設值使用.下面就是這個配置指令的樣本youraddress@yourdomain.com指的是你自己的郵件地址.
代碼如下 |
複製代碼 |
sendmail_from = youraddress@yourdomain.com |
發送一個簡單的電子郵件:
代碼如下 |
複製代碼 |
$txt = "First line of textnSecond line of text"; // Use wordwrap() if lines are longer than 70 characters $txt = wordwrap($txt,70); // Send email mail("somebody@example.com","My subject",$txt); |
剛開始感覺非常不錯,網易郵箱、QQ郵箱、GMAIL郵箱常用的郵箱都可以收到,但經測試HOTMAIL、TOM、LIVE等郵箱是收不到此類郵件的!
經查詢郵件發送的時候,一般都需要身分識別驗證,而PHP內建的mail()無能為力,很脆弱啊!