使用php中的mail函數發送郵件收不到的解決方法:首先安裝sendmail和sendmail-cf包;然後編輯sendmail.mc配置文件,修改相關配置;最後生成一份新的配置文件,並在終端機進行測試即可。
本文操作環境:ubuntu 17.04系統、php 7.3、thinkpad t480電腦。
原因分析:
我們之所以收不到郵件,可能是因為沒有進行一些相關設定所導致的。
下面就讓我們一起來看看具體的步驟吧。
首先 我們需要安裝一些軟體:
ubuntu中sendmail函數可以很方便的發送郵件,ubuntu sendmail先要安裝兩個套件
sudo apt-get install sendmail sudo apt-get install sendmail-cf
注意:
Ubuntu下使用最常用的mail功能,需要安裝mailutils,
安裝指令:
sudo apt-get install mailutils
使用附附件的功能,則還需要安裝sharutils,
安裝指令:
sudo apt-get install sharutils;(yum install sharutils )
終端機輸入指令:
ps aux |grep sendmail
輸出如下:
root 20978 0.0 0.3 8300 1940 ? Ss 06:34 0:00 sendmail: MTA: accepting connections root 21711 0.0 0.1 3008 776 pts/0 S+ 06:51 0:00 grep sendmail
說明sendmail 已經安裝成功並啟動了
#安裝好了之後我們就要進行一些相關設定
sendmail 預設只會為本機使用者發送郵件,只有把它擴展到整個Internet,才會成為真正的郵件伺服器。
開啟sendmail的設定巨集檔案:/etc/mail/sendmail.mc
vi /etc/mail/sendmail.mc
找到以下行:
DAEMON_OPTIONS(`Family=inet, Name=MTA-v4 , Port=smtp, Addr=127.0.0.1′)dnl
修改Addr=0.0.0.0 ,表示可連接到任何伺服器。
產生新的設定檔:
#cd /etc/mail #mv sendmail.cf sendmail.cf~ //做一个备份 #m4 sendmail.mc > sendmail.cf //>的左右有空格,提示错误没有安装sendmail-cf $ sudo vim /etc/php5/apache2/php.ini
找到「;sendmail_path」這句,去掉註解的」;」,然後新增sendmail啟動目錄
sendmail_path = /usr/ sbin/sendmail -t -i
到這裡理論上就可以寄email了。
最後可以在終端機測試一下設定是否成功:
終端常用傳送郵件方式如下:
如何寫一般的郵件: mail test@126.com Cc 編輯抄送對象,Subject:郵件主題,輸入回車,郵件正文後,按Ctrl-D結束
#快速發送方式: echo “郵件正文” | mail -s 郵件主題test@126.com
以文件內容作為郵件正文來發送: mail -s test test@126.com < test.txt
發送附附件的郵件: uuencode 附件名稱附件顯示名稱| mail - s 郵件主題發送地址
相關推薦:php影片教學
#以上是使用php中的mail函數發送郵件收不到怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!