首頁 > 後端開發 > PHP問題 > 使用php中的mail函數發送郵件收不到怎麼辦

使用php中的mail函數發送郵件收不到怎麼辦

王林
發布: 2023-03-10 13:48:02
原創
2702 人瀏覽過

使用php中的mail函數發送郵件收不到的解決方法:首先安裝sendmail和sendmail-cf包;然後編輯sendmail.mc配置文件,修改相關配置;最後生成一份新的配置文件,並在終端機進行測試即可。

使用php中的mail函數發送郵件收不到怎麼辦

本文操作環境: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中文網其他相關文章!

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