這篇文章主要介紹如何解決使用php中mail函數發送郵件收不到的問題,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
使用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
到這里理論上就可以發郵件了。
最后可以在終端測試一下配置是否成功:
終端常用發送郵件方式如下:
如何寫一般的郵件: 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中mail函數發送郵件收不到的問題”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。