這兩天寫了個方法用到php mail()本以為php提供的這個方法非常簡單、方便、易用,其實不然!
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 = 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()無能為力,很脆弱?。?/p>
新聞熱點
疑難解答