php中mail函數(shù)是一個(gè)自帶的發(fā)郵件的函數(shù),但是如果你真的要使用mail函數(shù)來(lái)發(fā)郵件那必須是要給你系統(tǒng)安裝sendmail組件才可以,下面我就碰到mail發(fā)送不了郵件的問(wèn)題,下面一起來(lái)看看解決辦法吧.
之前的那臺(tái)服務(wù)器轉(zhuǎn)移過(guò)來(lái)后,發(fā)現(xiàn)網(wǎng)站用mail()發(fā)送郵件發(fā)不了,但是發(fā)現(xiàn)sendmail明明已經(jīng)安裝,如果沒(méi)有安裝sendmail可以執(zhí)行,代碼如下:
yum install sendmail
對(duì)了,主機(jī)名要設(shè)置一個(gè)域名格式的,例如:Vevb.com,不然重啟sendmail的時(shí)候會(huì)特別久才啟動(dòng)起來(lái),否則要等很久,代碼如下:
hostname Vevb.com
接著看看sendmail是否正常運(yùn)行,代碼如下:
service sendmail status
如果沒(méi)有運(yùn)行可以啟動(dòng),status換成start,緊接著,編輯php.ini,可以在web環(huán)境下創(chuàng)建一個(gè)phpinfo,因?yàn)槲矣玫氖莑nmp.
vi /usr/local/php/etc/php.ini
再查找:;sendmail_path =,按i編輯,替換為:
sendmail_path = /usr/sbin/sendmail -t -i
我的系統(tǒng)默認(rèn)的是:sendmail_path = /usr/sbin/sendmail -t -i -f
這個(gè)-f 看來(lái)是讓mail函數(shù)停用了,去掉-f后mail函數(shù)工作恢復(fù)正常,緊接著,重啟PHP進(jìn)程,一般是:service php restart LNMP是:service php-fpm restart,Apache下可以:service httpd restart
給大家分享個(gè)php腳本測(cè)試代碼,代碼如下:
- <?php
- $send = mail(‘yourEmail@lisizhang.com’, ‘郵件標(biāo)題’, ‘測(cè)試郵件內(nèi)容,如果收到此郵件,表示mail函數(shù)成功啟用!’);
- if($send){
- echo ‘true’;
- }else{
- echo ‘false’;
- }
- ?>
如果返回結(jié)果false說(shuō)明郵件發(fā)送失敗,如果返回true表示郵件發(fā)送成功.
新聞熱點(diǎn)
疑難解答