首頁 > 後端開發 > php教程 > php中mail函數發送郵件失敗了怎麼辦?

php中mail函數發送郵件失敗了怎麼辦?

伊谢尔伦
發布: 2023-03-11 15:26:01
原創
2000 人瀏覽過

php中mail函數是一個自帶的發郵件的函數,但是如果你真的要使用郵件函數來發送郵件那必須是要給你係統 #安裝sendmail元件才可以,下面我就碰到mail發送不了郵件的問題,下面一起來看看解決辦法吧.

之前的那台伺服器轉移過來後,發現網站用郵件()發送郵件發不了,但是發現sendmail明明已經安裝,如果沒有安裝sendmail可以執行,代碼如下:

yum install sendmail
登入後複製

對了,主機名要設置一個域名格式的,例如:jb51.net,不然重啟sendmail的時候會特別久才啟動起來,否則要等很久,程式碼如下:

hostname .net
登入後複製

接著看看sendmail是否正常運作,程式碼如下:

service sendmail status
登入後複製

如果沒有運行可以啟動,status換成start,緊接著,編輯php.ini,可以在web環境下創建一個phpinfo,因為我用的是lnmp.

vi /usr/local/php/etc/php.ini
登入後複製

再查找:;sendmail_path =,按i編輯,替換為:

sendmail_path = /usr/sbin/sendmail -t -i
登入後複製

我的系統預設的是:

sendmail_path = /usr/sbin/sendmail -t -i -f
登入後複製

這個-f 看來是讓mail函數停用了,去掉-f後mail函數工作恢復正常,緊接著,重啟PHP進程,一般是:service php restart LNMP是:service php-fpm restart,Apache下可以:service httpd restart

給大家分享個php腳本測試程式碼,程式碼如下:

<?php 
$send = mail(&#39;your
Email
@lisizhang.com&#39;, &#39;邮件标题&#39;, &#39;测试邮件内容,如果收到此邮件,表示mail函数成功启用!&#39;); 
if($send){ 
echo &#39;true&#39;; 
}else{ 
echo &#39;false&#39;; 
} 
?>
登入後複製

如果傳回結果false說明郵件發送失敗,如果回傳true表示郵件發送成功.

以上是php中mail函數發送郵件失敗了怎麼辦?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板